allure-framework / allure-framework/allure-python
Add labels from env for all tests in a run
- Lenguaje dominante
- Python
- Estrellas
- 814
- Forks
- 260
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
#### I'm submitting a ...
- [ ] bug report
- [x] feature request
- [ ] support request => Please do not submit support request here, see note at the top of this template.
#### What is the current behavior?
Currently there is no way to pass environment-related info into all tests in a run without modifying the code base of the tests.
#### What is the expected behavior?
Allure should automatically convert environment variables to labels using the naming convention specified below.
#### What is the motivation / use case for changing the behavior?
It\`s useful to test an application or library across multiple different environments. Such environments may differ in
- a language version
- an operating system
- a platform
- a dependency version
- etc.
The environment-based labels help to distinguish test results produced by the same test in different environments. TestOps can group those results apart with its `env from label` feature.
#### Other information
##### Naming convention
Every environment variable in form `ALLURE_LABEL_=` is translated into the label `` with the value ``.
The label is added for each test in the run.
##### Constraints
To ensure consistency across different allure adapters the following constraints are imposed:
- The environment variables are captured when the test is about to start (see [allure-java](https://github.com/allure-framework/allure-java/blob/e91fb588572ed9397911e988035bc000cd93b354/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java#L509))
##### Example
Given the following environment variables:
```
ALLURE_LABEL_PYTHON_VERSION=3.11
ALLURE_LABEL_OS=Linux
ALLURE_LABEL_USERNAME=John
ALLURE_LABEL_EMPTY=
```
When the tests are run.
Then the following labels are present in any `*-result.json` file created during the run:
```json
{
...
"labels": [
...
{
"name": "PYTHON_VERSION",
"value": "3.11"
},
{
"name": "OS",
"value": "Linux"
},
{
"name": "USERNAME",
"value": "John"
},
{
"name": "EMPTY",
"value": ""
}
]
}
```
Guía de contribución
Línea de trabajo
Comienza revisando la referencia de temporización de las etiquetas de entorno en allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java y los puntos de entrada de los adaptadores de Python que crean archivos JSON de resultados. Ejecuta las pruebas existentes de los adaptadores y, después, verifica que cada resultado de prueba reciba variables ALLURE_LABEL_, incluidos los valores vacíos, con los nombres y valores de etiqueta esperados.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- testing
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100