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.
If you still have questions, please ask a question and I will try to answer it.
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 [email protected].