@@ -106,6 +106,44 @@ classmethod-decorators = ["classmethod", "validator"]
106
106
[tool .ruff .lint .pydocstyle ]
107
107
convention = " google"
108
108
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
+
109
147
# Black configuration
110
148
[tool .black ]
111
149
line-length = 88
0 commit comments