@@ -87,6 +87,9 @@ module.exports.addPlaywrightTests = ({testRunner, products}) => {
87
87
delete global . playwright ;
88
88
} ) ;
89
89
90
+ testRunner . collector ( ) . useEnvironment ( serverEnvironment ) ; // Custom global environment.
91
+ testRunner . collector ( ) . useEnvironment ( playwrightEnvironment ) ;
92
+
90
93
for ( const product of products ) {
91
94
const browserTypeEnvironment = new Environment ( 'BrowserType' ) ;
92
95
browserTypeEnvironment . beforeAll ( async state => {
@@ -145,8 +148,10 @@ module.exports.addPlaywrightTests = ({testRunner, products}) => {
145
148
state . page = null ;
146
149
} ) ;
147
150
148
- testRunner . collector ( ) . useEnvironment ( serverEnvironment ) ; // Custom global environment.
149
- testRunner . collector ( ) . useEnvironment ( playwrightEnvironment ) ;
151
+ function loadTest ( path ) {
152
+ require ( path ) ;
153
+ delete require . cache [ require . resolve ( path ) ] ;
154
+ }
150
155
151
156
describe ( product , ( ) => {
152
157
// In addition to state, expose these two on global so that describes can access them.
@@ -164,66 +169,66 @@ module.exports.addPlaywrightTests = ({testRunner, products}) => {
164
169
165
170
// Page-level tests that are given a browser, a context and a page.
166
171
// Each test is launched in a new browser context.
167
- require ( './accessibility.spec.js' ) ;
168
- require ( './autowaiting.spec.js' ) ;
169
- require ( './click.spec.js' ) ;
170
- require ( './cookies.spec.js' ) ;
171
- require ( './dialog.spec.js' ) ;
172
- require ( './download.spec.js' ) ;
173
- require ( './elementhandle.spec.js' ) ;
174
- require ( './emulation.spec.js' ) ;
175
- require ( './evaluation.spec.js' ) ;
176
- require ( './frame.spec.js' ) ;
177
- require ( './focus.spec.js' ) ;
178
- require ( './input.spec.js' ) ;
179
- require ( './jshandle.spec.js' ) ;
180
- require ( './keyboard.spec.js' ) ;
181
- require ( './mouse.spec.js' ) ;
182
- require ( './navigation.spec.js' ) ;
183
- require ( './network.spec.js' ) ;
184
- require ( './page.spec.js' ) ;
185
- require ( './queryselector.spec.js' ) ;
186
- require ( './screenshot.spec.js' ) ;
187
- require ( './waittask.spec.js' ) ;
188
- require ( './interception.spec.js' ) ;
189
- require ( './geolocation.spec.js' ) ;
190
- require ( './workers.spec.js' ) ;
191
- require ( './capabilities.spec.js' ) ;
192
- require ( './permissions.spec.js' ) ;
172
+ loadTest ( './accessibility.spec.js' ) ;
173
+ loadTest ( './autowaiting.spec.js' ) ;
174
+ loadTest ( './click.spec.js' ) ;
175
+ loadTest ( './cookies.spec.js' ) ;
176
+ loadTest ( './dialog.spec.js' ) ;
177
+ loadTest ( './download.spec.js' ) ;
178
+ loadTest ( './elementhandle.spec.js' ) ;
179
+ loadTest ( './emulation.spec.js' ) ;
180
+ loadTest ( './evaluation.spec.js' ) ;
181
+ loadTest ( './frame.spec.js' ) ;
182
+ loadTest ( './focus.spec.js' ) ;
183
+ loadTest ( './input.spec.js' ) ;
184
+ loadTest ( './jshandle.spec.js' ) ;
185
+ loadTest ( './keyboard.spec.js' ) ;
186
+ loadTest ( './mouse.spec.js' ) ;
187
+ loadTest ( './navigation.spec.js' ) ;
188
+ loadTest ( './network.spec.js' ) ;
189
+ loadTest ( './page.spec.js' ) ;
190
+ loadTest ( './queryselector.spec.js' ) ;
191
+ loadTest ( './screenshot.spec.js' ) ;
192
+ loadTest ( './waittask.spec.js' ) ;
193
+ loadTest ( './interception.spec.js' ) ;
194
+ loadTest ( './geolocation.spec.js' ) ;
195
+ loadTest ( './workers.spec.js' ) ;
196
+ loadTest ( './capabilities.spec.js' ) ;
197
+ loadTest ( './permissions.spec.js' ) ;
193
198
194
199
describe . skip ( product !== 'Chromium' ) ( '[Chromium]' , ( ) => {
195
- require ( './chromium/chromium.spec.js' ) ;
196
- require ( './chromium/coverage.spec.js' ) ;
197
- require ( './chromium/pdf.spec.js' ) ;
198
- require ( './chromium/session.spec.js' ) ;
200
+ loadTest ( './chromium/chromium.spec.js' ) ;
201
+ loadTest ( './chromium/coverage.spec.js' ) ;
202
+ loadTest ( './chromium/pdf.spec.js' ) ;
203
+ loadTest ( './chromium/session.spec.js' ) ;
199
204
} ) ;
200
205
} ) ;
201
206
202
207
// Browser-level tests that are given a browser.
203
208
describe ( '[Driver]' , ( ) => {
204
- require ( './browser.spec.js' ) ;
205
- require ( './browsercontext.spec.js' ) ;
206
- require ( './ignorehttpserrors.spec.js' ) ;
207
- require ( './popup.spec.js' ) ;
209
+ loadTest ( './browser.spec.js' ) ;
210
+ loadTest ( './browsercontext.spec.js' ) ;
211
+ loadTest ( './ignorehttpserrors.spec.js' ) ;
212
+ loadTest ( './popup.spec.js' ) ;
208
213
} ) ;
209
214
} ) ;
210
215
211
216
// Top-level tests that launch Browser themselves.
212
217
describe ( '[Driver]' , ( ) => {
213
- require ( './defaultbrowsercontext.spec.js' ) ;
214
- require ( './fixtures.spec.js' ) ;
215
- require ( './launcher.spec.js' ) ;
216
- require ( './headful.spec.js' ) ;
217
- require ( './multiclient.spec.js' ) ;
218
+ loadTest ( './defaultbrowsercontext.spec.js' ) ;
219
+ loadTest ( './fixtures.spec.js' ) ;
220
+ loadTest ( './launcher.spec.js' ) ;
221
+ loadTest ( './headful.spec.js' ) ;
222
+ loadTest ( './multiclient.spec.js' ) ;
218
223
} ) ;
219
224
220
225
describe . skip ( product !== 'Chromium' ) ( '[Chromium]' , ( ) => {
221
- require ( './chromium/launcher.spec.js' ) ;
222
- require ( './chromium/oopif.spec.js' ) ;
223
- require ( './chromium/tracing.spec.js' ) ;
226
+ loadTest ( './chromium/launcher.spec.js' ) ;
227
+ loadTest ( './chromium/oopif.spec.js' ) ;
228
+ loadTest ( './chromium/tracing.spec.js' ) ;
224
229
} ) ;
225
230
226
- require ( './apicoverage.spec.js' ) ;
231
+ loadTest ( './apicoverage.spec.js' ) ;
227
232
228
233
delete global . browserType ;
229
234
delete global . playwright ;
0 commit comments