fixtures do not record dependencies on other fixtures
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 64/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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"
]
}
- Vorherrschende Sprache
- Python
- Sterne
- 819
- Forks
- 261
- Ø Merge
- 3 Std. 20 Min.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus allure-framework/allure-python
-
[allure-behave] Steps from tag-excluded scenarios bleed into the next matching scenario's result when hide_excluded=trueEvtl. vergeben @liuyaohui666 hat das vor 49 Tagen übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 84/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
allure-framework/allure-python#930 · 3 Kommentare ·
-
Added CategoriesOffen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
-
Phantom <lambda> teardown entries with unknown status when using pytest 9.1+Evtl. vergeben @Mohanad49 hat das vor 53 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
allure-framework/allure-python#918 · 1 Reaktion ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
allure-framework/allure-python#903 · 1 Kommentar ·
Alle Issues in allure-framework/allure-python
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
NVIDIA/earth2studio#1241 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
docs(types): update the collection binding note now that typed collections shipped in pycubrid 1.9.0Offendocumentation priority: low size: S
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
cubrid-lab/sqlalchemy-cubrid#768 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Broken link in index.rstOffendocumentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 65/100
ansys/pydpf-core#3547 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
OktoLabsAI/okto-pulse#114 ·
Maintainer antworten meist innerhalb von 1 Tag