Given the following directory structure...
- /src/__mocks__
- X.spec.tsx <-- mock test
- Y.spec.tsx <-- mock test
- Z.spec.tsx <-- mock test
- /src/e2e_tests <-------------- only run the tests inside this directory
- X.spec.tsx <-- end-to-end test
- Y.spec.tsx <-- end-to-end test
- Z.spec.tsx <-- end-to-end test
- /src/components
- A.tsx
- A.spec.tsx <-- unit test
- B.tsx
- B.spec.tsx <-- unit test
- C.tsx
- C.spec.tsx <-- unit test
- /src/views
- X.tsx
- X.spec.tsx <-- unit test
- Y.tsx
- Y.spec.tsx <-- unit test
- Z.tsx
- Z.spec.tsx <-- unit test
- /src
- App.tsx
- index.tsx
- jest.config.ts
- playwright.config.ts
- package.json
- tsconfig.json
- tsconfig.spec.json
- ect...
I've tried the following: How do you specify a test folder/path with Playwright?, however, this will also attempt to run all the tests outside the folder.
I've tried reading through the docs here: https://playwright.dev/docs/test-configuration and have tried the following combination:
- testDir
- testIgnore
- testMatch
but can't get only e2e_tests
directory tests to run while ignoring all other tests.
CodePudding user response:
One way to do this is to create a project in your existing playwright config file and just add the testDir
there, something like:
projects: [
{
name: 'chromium',
use: {...devices['Desktop Chrome']},
},
{
name: 'firefox',
use: {...devices['Desktop Firefox']},
},
{
name: 'webkit',
use: {...devices['Desktop Safari']},
},
{
name: 'e2e_tests',
testDir: './src/e2e_tests',
testMatch: /.*.spec.tsx/,
},
]
And then run your tests like:
npx playwright test --project=e2e_tests
CodePudding user response:
Just using the playwright command line should do the job
Setup your configuration to look for all *.spec.tsx
files for test and run
npx playwright src/e2e_tests
Documentation ref: https://playwright.dev/docs/test-cli