Files
Atomizer/tests/conftest.py
Antoine b3162aa78d Tier 2 dev workflow: Windows test runner + result sync
- run_tests.bat: double-click test runner with JSON result capture
- run_script.bat: run any script with output capture
- test_results/ folder for Syncthing-based result sharing
- Auto-mark NX-dependent tests for --quick mode
- pytest-json-report for structured results
2026-03-07 14:07:32 +00:00

47 lines
1.3 KiB
Python

"""
Pytest configuration and shared fixtures for Atomizer tests.
"""
import pytest
import sys
from pathlib import Path
# Add project root to path
sys.path.insert(0, str(Path(__file__).parent.parent))
def pytest_configure(config):
"""Register custom markers."""
config.addinivalue_line("markers", "nx: requires NX Open (skip with -m 'not nx')")
config.addinivalue_line("markers", "slow: slow tests (skip with -m 'not slow')")
def pytest_collection_modifyitems(config, items):
"""Auto-mark tests that import NXOpen."""
for item in items:
# Auto-mark files with 'nx' or 'journal' in name
if 'nx' in item.nodeid.lower() or 'journal' in item.nodeid.lower():
item.add_marker(pytest.mark.nx)
@pytest.fixture
def sample_study_dir(tmp_path):
"""Create a temporary study directory structure."""
study = tmp_path / "test_study"
(study / "1_setup").mkdir(parents=True)
(study / "2_iterations").mkdir()
(study / "3_results").mkdir()
return study
@pytest.fixture
def sample_config():
"""Sample optimization config for testing."""
return {
"study_name": "test_study",
"design_variables": [
{"name": "param1", "lower": 0, "upper": 10, "type": "continuous"}
],
"objectives": [
{"name": "minimize_mass", "direction": "minimize"}
]
}