Use setup & teardown in BrowserStack SDK
BrowserStack SDK for Playwright configures projects based on test specifications found in the test folder and platform combinations defined in the browserstack.yml
file. With m
test specs and n
platform combinations, this results in the creation of m * n
Playwright projects.
Using setup
, teardown
, testMatch
, and testIgnore
keys in playwrightConfigOptions
, you can do the following:
These features are currently supported only on the BrowserStack Node SDK version (v1.31.16 or above).
-
Define execution order: Specify the order in which test specifications should be executed.
-
Run a spec on a specific platform: Choose a particular test spec and associate it with a specific platform combination defined in the YAML file. This allows you to target specific environments rather than running tests across all defined platform combinations. These enhancements provide you more flexibility and control over the execution of Playwright tests, catering to a wider range of your requirements.
Use the below features to optimize your test execution using Playwright SDK:
Set the setup
and teardown
keys under playwrightConfigOptions
in the browserstack.yml
file.
Specs that must run before any other specs in the platform should be defined under setup
in the playwrightConfigOptions
.
The teardown
consists of the specs that you must run after the specs defined in setup
and all dependent specs complete running.
Table 1: Properties, valid input types, and error message:
Dependencies | Properties | Type | Valid inputs | Optional |
---|---|---|---|---|
setup |
name |
String | String | No |
testMatch |
String/RegExp/Array | String/RegExp/Array | No | |
teardown |
String | String | Yes | |
teardown |
name |
String | String | No |
testMatch |
String/RegExp/Array | String/RegExp/Array | No |
Example of how you can set the setup
and teardown
properties in playwrightConfigOptions
:
setup
and teardown
are platform combination specific. They need to be defined in each platform combinations if specs dependency is required.
The above configuration translates to following in Playwright:
Use the storageState
in playwrightConfigOptions
in Playwright SDK:
Set the testmatch
and testIgnore
properties under playwrightConfigOptions
in the browserstack.yml
file.
When you pass a regular expression in testmatch
, the test runner executes only the files that match one of these patterns. Matching occurs against the absolute file path, treating strings as glob patterns.
Playwright, by default, searches for files that match the following glob pattern: **/*.@(spec|test).?(c|m)[jt]s?(x)
. This entails identifying JavaScript or TypeScript files with the suffixes .test
or .spec
such as sample-screen-credentials.spec.ts
.
When you pass a regular expression in testIgnore
, test files are not executed if they match one of these patterns. Matching involves assessing the absolute file path, and strings are treated as glob patterns.
For instance, the pattern ‘/test-assets/’ will exclude any files within the test-assets directory.
You can add the testMatch
and testIgnore
properties in playwrightConfigOptions
. When added to a platform combination, only tests that match these properties run in the platform.
Table 2: Properties, valid input types, and error message:
Properties | Valid input types | Error message |
---|---|---|
testMatch and testIgnore
|
string / RegExp / Array <string|RegExp> | “Invalid value for testMatch key in the browserstack.yml file” “Invalid value for testIgnore key in the yml file” |
Example of how you can set the testMatch
in playwrightConfigOptions
in the browserstack.yml
file:
The above configuration translates to following in Playwright:
Example of how you can set the testIgnore
in playwrightConfigOptions
in the browserstack.yml
file:
The above configuration translates to following in Playwright:
Set testDir
in the browserstack.yml
file.
testDir
is a directory that gets recursively scanned for test files where the configuration file is located.
Table 3: Properties, valid input types, and error message:
Properties | Valid Input Types | Error Message |
---|---|---|
testDir |
string | “Invalid value for ‘testDir’ key in the yml file” |
The above configuration translates to following in Playwright:
Need help?
If you have any queries, get in touch with us.
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
- RESOURCES
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback!