If I want to by-default ignore some tags, how can I force-call them? https://playwright.dev/docs/api/class-testconfig#test-config-grep-invert
import { defineConfig } from '@playwright/test';
export default defineConfig({
grepInvert: /manual/,
});
and
npx playwright test --grep @manual
This thread is trying to answer question "How can I force-call tags that I have set to be ignored by default using 'grepInvert' in Playwright, particularly if the tag is per-project rather than global?"
Not sure if I get what you are asking, but in our GH pipeline we use the command line for tagging so we can allow the caller of the workflow specify the tags for there run. So the input is excluded or included tags the command line gets used if in the following fashion.
npx playwright test --grep @flaky npx playwright test --grep-invert @flay
You can add tags at the project level as well, but I haven't tested it. I would be careful that if you go with project tags that the global tagging is removed to not conflict or confuse the users.
CI should never run @flaky - so it is marked in-config (instead of changing the CI command line).
I would like to be able to "force-ignore" that, if I so choose, by providing a command-line argument (e.g. --grep-invert ''
).
=== My scenario is more complicated that this. Otherwise, the annoying env.CI ? /@manual/ : undefined
would've worked
Related Ask AI answer for "How do I configure the 'grepInvert' option in Playwright to ignore specific tags by default in a per-project setting?".
Sure, you can force-call ignored tags in Playwright using the grepInvert
option in your test project configuration. Here's how:
First, you need to set up your test project configuration file, typically named playwright.config.ts
. This is where you define your test project settings.
// playwright.config.ts
import { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
// Other configuration options...
};
export default config;
Next, within this file, find the testProject
object. Add a grepInvert
property to it. Set its value to an array of regular expressions or a single regular expression pattern. These patterns represent the tags you want to ignore.
// playwright.config.ts
const config: PlaywrightTestConfig = {
// Other configuration options...
testProject: {
// Other project settings...
grepInvert: [/tag1/, /tag2/], // Specify the tags to be ignored
},
};
In this example, tests with titles containing "tag1" or "tag2" will be ignored by default. This configuration is per-project and won't affect global configurations or other projects.
Remember, if no patterns are specified for exclusion using grepInvert
, all tests will run, regardless of their tags.
For more details on organizing Playwright tests using tags, check out this blog post.
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].