有不同的UI版本的桌面和移动设备,我努力瞄准某些特定的测试移动设备,而强迫其余的只运行桌面。除了现有的浏览器,我还添加了一个像这样的移动目标:
{
name: 'mobile',
use: {
...devices['iPhone 12'],
viewport: {
width: 390,
height: 844
},
headless: false,
video: 'on-first-retry'
},
},
正确运行模拟指定移动目标的测试。问题是,它会使用此配置尝试每一个测试,而我只需要它为移动设备运行指定的测试。
我能想到实现目标的唯一方法是创建两个独立的项目。是否有更好的"可配置"方式?
您是否需要testProject。grep的选择吗?
过滤器,仅运行具有与模式之一匹配的标题的测试. 例如,通过
grep: /cart/
应该只运行带有"cart"的测试。在标题中。也可以全局使用,也可以在命令行中使用-g选项。
{
name: 'mobile',
use: {
...devices['iPhone 12'],
viewport: {
width: 390,
height: 844
},
headless: false,
video: 'on-first-retry',
},
grep: /mobile/
},
你可以在剧作家配置文件中使用项目。对于不同的项目类型,您可以使用正则表达式模式来标识您想要运行的测试:
import type { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
timeout: 60000, // Timeout is shared between all tests.
projects: [
{
name: 'Smoke',
testMatch: /.*smoke.spec.ts/,
retries: 0,
},
{
name: 'Default',
testIgnore: /.*something.spec.ts/,
retries: 2,
},
],
};
export default config;
然后运行测试,你可以这样做:
npx playwright test --project=Smoke