ecu-tests/pytest.ini

42 lines
2.7 KiB
INI

[pytest]
# addopts: Default CLI options applied to every pytest run.
# -ra → Show extra test summary info for skipped, xfailed, etc.
# --junitxml=... → Emit JUnit XML for CI systems (machines can parse it).
# --html=... → Generate a human-friendly HTML report after each run.
# --self-contained-html → Inline CSS/JS in the HTML report for easy sharing.
# --tb=short → Short tracebacks to keep logs readable.
# Plugin note: We no longer force-load via `-p conftest_plugin` to avoid ImportError
# on environments where the file might be missing. Instead, `conftest.py` will
# register the plugin if present. The plugin:
# - extracts Title/Description/Requirements/Steps from test docstrings
# - adds custom columns to the HTML report
# - writes requirements_coverage.json and summary.md in reports/
addopts = -ra --junitxml=reports/junit.xml --html=reports/report.html --self-contained-html --tb=short --cov=ecu_framework --cov-report=term-missing
# markers: Document all custom markers so pytest doesn't warn and so usage is clear.
# Use with: pytest -m "markername"
markers =
hardware: requires real hardware (LIN master + ECU); excluded by default in mock runs
babylin: DEPRECATED. Tests targeting the legacy BabyLIN interface; use the `mum` marker for new tests.
mum: tests that use the Melexis Universal Master (MUM) interface (requires hardware)
unit: fast, isolated tests (no hardware, no external I/O)
req_001: REQ-001 - Mock interface shall echo transmitted frames for local testing
req_002: REQ-002 - Mock interface shall synthesize deterministic responses for request operations
req_003: REQ-003 - Mock interface shall support frame filtering by ID
req_004: REQ-004 - Mock interface shall handle timeout scenarios gracefully
smoke: Basic functionality validation tests
boundary: Boundary condition and edge case tests
slow: Slow tests (>5s typical); selectable via -m "slow" or excludable via -m "not slow"
psu_settling: Owon PSU voltage settling-time characterization (opt-in via -m psu_settling)
ANM: Tests related to ALM_Req_A LED animation and state behavior
COM: Tests related to COM Management (LDF, LIN frames, color table) — SWE.5 Integration
COM_VTD: Tests related to COM Management Qualification / Validation — SWE.6
# testpaths: Where pytest looks for tests by default.
testpaths = tests
# junit_family: 'legacy' is required for record_property() entries to appear in
# the JUnit XML. The default 'xunit2' silently drops them and warns at collect
# time, which breaks the conftest plugin's metadata round-trip.
junit_family = legacy