最近我发现了剧作家,看起来真的很好。我发现的问题通常是在黄瓜或小黄瓜语法的实现中。例如,在 cypress 中,这里的任务非常简单,看起来我需要使用其他测试运行程序然后使用剧作家。这是真的还是我只是缺少剧作家中黄瓜的一些库/配置?感谢您的任何建议。
您可以使用 Cucumber 来运行测试并将其与 Playwright 集成。作为起点,您可以查看 Tally Barak 的链接,这对您有很大帮助。
介绍文章https://tally-b.medium.com/e2e-testing-with-cucumber-and-playwright-9584d3ef3360
还有 playwright-bdd 包,允许使用 Playwright runner 执行 BDD 场景:
您可以按照与 Cucumber 完全相同的方式编写步骤定义:
import { Given, When, Then } from '@cucumber/cucumber';
Given('I open url {string}', async function (url) {
await this.page.goto(url);
});
When('I click link {string}', async function (name) {
await this.page.getByRole('link', { name }).click();
});
并在功能文件中使用以下步骤:
Feature: Playwright site
Scenario: Check title
Given I open url "https://playwright.dev"
When I click link "Get started"
...
然后使用
playwright-bdd
选项更新 Playwright 配置:
// playwright.config.js
import { defineConfig } from '@playwright/test';
import { defineBddConfig } from 'playwright-bdd';
const testDir = defineBddConfig({
paths: ['feature/*.feature'],
require: ['steps/*.ts'],
});
export default defineConfig({
testDir,
});
最后使用以下命令运行测试:
npx bddgen && npx playwright test