fixtures do not record dependencies on other fixtures
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 64/100
Línea de trabajo
Start in the allure-pytest listener's pytest_fixture_setup handling, where each fixture becomes a before entry in a container JSON file; the fixturedef handed to that hook exposes the fixture's argument names, which is exactly the dependency data missing from the output. Run the snippet from the issue to generate the allure/*.json files and confirm where the ordering information is lost. Check whether the shared Allure results schema needs a new field before a report can order the fixtures, then verify existing allure-pytest tests still pass.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Example:
import pytest
import allure
def func(n):
return n**2
@pytest.fixture()
def input_data():
with allure.step("Prepare input data"):
data = 5
return data
@pytest.fixture()
def compute_job(input_data):
with allure.step("Compute result"):
result = func(input_data)
return result
def test(compute_job):
with allure.step("Verify result"):
assert compute_job == 25
In this case, allure output json files contain no information that allows to deduce that the compute_job fixture depends on the input_data fixture.
Since they are fast, time ordering is not possible in most cases, since times are only recorded as integer seconds.
The allure report then shows the two fixtures in the wrong order:
Output json files:
allure/404698a7-6d47-46ee-951e-f1370a8ae247-container.json
{
"uuid": "a00b000b-e3bf-4599-b1fe-f99a4d9265fb",
"children": [
"cb8afcb4-86c9-4ec5-b7c1-def3c168afde"
],
"befores": [
{
"name": "compute_job",
"status": "passed",
"steps": [
{
"name": "Compute result",
"status": "passed",
"start": 1791292365354,
"stop": 1791292365354
}
],
"start": 1791292365354,
"stop": 1791292365354
}
],
"afters": [
{
"name": "compute_job::<lambda>",
"start": 1791292365355
}
],
"start": 1791292365354,
"stop": 1791292365355
}
allure/b068721b-3ae1-4959-9376-e840e763dbee-container.json
{
"uuid": "76f7b786-56ff-4b9b-9931-98c632f44c92",
"children": [
"cb8afcb4-86c9-4ec5-b7c1-def3c168afde"
],
"befores": [
{
"name": "input_data",
"status": "passed",
"steps": [
{
"name": "Prepare input data",
"status": "passed",
"start": 1791292365354,
"stop": 1791292365354
}
],
"start": 1791292365354,
"stop": 1791292365354
}
],
"afters": [
{
"name": "input_data::<lambda>",
"start": 1791292365355
}
],
"start": 1791292365354,
"stop": 1791292365355
}
allure/a16a30e1-80d0-4a0e-8dda-54c1cbbb5157-result.json
{
"name": "test",
"status": "passed",
"steps": [
{
"name": "Verify result",
"status": "passed",
"start": 1791292365355,
"stop": 1791292365355
}
],
"start": 1791292365355,
"stop": 1791292365355,
"uuid": "cb8afcb4-86c9-4ec5-b7c1-def3c168afde",
"historyId": "761acda85279d873545739563f5f4cb2",
"testCaseId": "761acda85279d873545739563f5f4cb2",
"fullName": "test_example#test",
"labels": [
{
"name": "suite",
"value": "test_example"
},
{
"name": "host",
"value": "max-desktop"
},
{
"name": "thread",
"value": "980504-MainThread"
},
{
"name": "framework",
"value": "pytest"
},
{
"name": "language",
"value": "cpython3"
},
{
"name": "package",
"value": "test_example"
}
],
"titlePath": [
"test_example.py"
]
}
- Lenguaje dominante
- Python
- Estrellas
- 819
- Forks
- 261
- Merge medio
- 3 h 20 min
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de allure-framework/allure-python
-
[allure-behave] Steps from tag-excluded scenarios bleed into the next matching scenario's result when hide_excluded=truePosiblemente ocupada @liuyaohui666 la tomó hace 49 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
allure-framework/allure-python#930 · 3 comentarios ·
-
Added CategoriesAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Phantom <lambda> teardown entries with unknown status when using pytest 9.1+Posiblemente ocupada @Mohanad49 la tomó hace 54 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
allure-framework/allure-python#918 · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
allure-framework/allure-python#903 · 1 comentario ·
Todos los issues de allure-framework/allure-python
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mishraprafful/multihull#150 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
python-caldav/caldav#735 ·
Los mantenedores suelen responder en 1 día
-
bug triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
mealie-recipes/mealie#8682 ·
Los mantenedores suelen responder en 1 día
-
good first issue lane:repo
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100