@@ -106,6 +106,44 @@ classmethod-decorators = ["classmethod", "validator"]
106106[tool .ruff .lint .pydocstyle ]
107107convention = " google"
108108
109+ # Pytest configuration
110+ [tool .pytest .ini_options ]
111+ testpaths = [" tests" ]
112+ python_files = [" test_*.py" ]
113+ python_classes = [" Test*" ]
114+ python_functions = [" test_*" ]
115+ asyncio_mode = " auto"
116+ addopts = [
117+ " --cov=stagehand" ,
118+ " --cov-report=html:htmlcov" ,
119+ " --cov-report=term-missing" ,
120+ " --cov-report=xml" ,
121+ " --cov-fail-under=75" ,
122+ " --strict-markers" ,
123+ " --strict-config" ,
124+ " -ra" ,
125+ " --tb=short"
126+ ]
127+ markers = [
128+ " unit: Unit tests for individual components" ,
129+ " integration: Integration tests requiring multiple components" ,
130+ " e2e: End-to-end tests with full workflows" ,
131+ " slow: Tests that take longer to run" ,
132+ " browserbase: Tests requiring Browserbase connection" ,
133+ " local: Tests for local browser functionality" ,
134+ " llm: Tests involving LLM interactions" ,
135+ " mock: Tests using mock objects only" ,
136+ " performance: Performance and load tests" ,
137+ " smoke: Quick smoke tests for basic functionality"
138+ ]
139+ filterwarnings = [
140+ " ignore::DeprecationWarning" ,
141+ " ignore::PendingDeprecationWarning" ,
142+ " ignore::UserWarning:pytest_asyncio" ,
143+ " ignore::RuntimeWarning"
144+ ]
145+ minversion = " 7.0"
146+
109147# Black configuration
110148[tool .black ]
111149line-length = 88
0 commit comments