Rayrun

How do I access the test run status in the global teardown file in Playwright's test framework?

Answer

Sure, you can access the test run status in the global teardown file. This script runs after all tests are done, letting you do cleanup tasks or other actions based on the test results.

Here's how you can do it with Playwright's test framework:

First, define a custom variable in your global setup file and update its value based on the test outcomes. Then, in your global teardown file, you can access this variable to know the overall status of the tests.

Here's an example:

// global-setup.ts
import { FullConfig } from '@playwright/test';

async function globalSetup(config: FullConfig) {
  process.env.TEST_STATUS = 'passed';
}

export default globalSetup;
// tests/menu.loggedin.spec.ts
import { expect } from '@playwright/test';

test('menu', async ({ page }) => {
  if (/* some condition */) {
    process.env.TEST_STATUS = 'failed';
  }
});
// cleanup-db.teardown.ts
import { FullConfig } from '@playwright/test';

async function cleanupDbTeardown(config: FullConfig) {
  const { TEST_STATUS } = process.env;

  if (TEST_STATUS === 'passed') {
    console.log('All tests passed!');
  } else if (TEST_STATUS === 'failed') {
    console.log('Some tests failed!');
  } else {
    console.log('Unknown test status!');
  }
}

export default cleanupDbTeardown;

In this example, the TEST_STATUS variable is initially set to 'passed' in the global setup file. Then, in each individual test file (menu.loggedin.spec.ts), you can update the TEST_STATUS based on the outcome of each test. Finally, in the global teardown file (cleanup-db.teardown.ts), you can access the TEST_STATUS variable to determine whether all tests passed or if any of them failed.

Remember to configure your Playwright configuration file (playwright.config.ts) to use the global setup and teardown files accordingly.

This example assumes you are using Playwright's test framework and may need adjustments based on your specific testing setup.

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.