Rayrun

How do I selectively run specific tests from a group of functional tests in an e2e regression test using Playwright Test framework?

Answer

Sure, you can run a single test from a group of functional tests in an e2e regression test with Playwright Test. You can do this by using test annotations and tags.

Grouping Tests

You can group tests together with test.describe. This function gives your tests a logical name or scope. Inside the test.describe block, you can define multiple tests using the test function. Each test can have its own unique functionality.

test.describe('Login Tests', () => {
  test('Login with valid credentials', async ({ page }) => {
    // Test code here
  });
  test('Login with invalid credentials', async ({ page }) => {
    // Test code here
  });
});

Tagging Tests

You can tag your tests and selectively run them based on these tags. For example, you can tag a test as "@fast" or "@slow".

test('@fast Login with valid credentials', async ({ page }) => {
  // Test code here
});

To run only tests with a certain tag, use the --grep command line flag followed by the desired tag value.

npx playwright test --grep @fast

This will execute only those tests that are tagged as "@fast".

Skipping Tests

If you want to skip tests with a certain tag, you can use the --grep-invert command line flag followed by the desired tag value.

npx playwright test --grep-invert @slow

This will skip all tests that are tagged as "@slow".

Running Tests with Multiple Tags

If you want to run tests containing either of multiple tags, you can use regex lookaheads with --grep.

npx playwright test --grep "@fast|@slow"

This will execute all tests that are tagged either as "@fast" or "@slow".

If you want to run only those tests that contain both tags, again using regex lookaheads with --grep.

npx playwright test --grep "(?=.*@fast)(?=.*@slow)"

This will execute only those tests that are tagged as both "@fast" and "@slow".

By using these test annotations and tags, you can selectively include or exclude specific tests from a group of functional tests in your e2e regression test. This provides flexibility in running targeted tests based on their characteristics or requirements.

For more information on organizing your Playwright tests using tags, check out this blog post.

References

Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

Related Discord Threads

Related Questions

TwitterGitHubLinkedIn
AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.