我有一个测试套件需要浏览器来进行 UI 测试。我还有一个非浏览器 API 测试套件(HTTP 请求/响应)。
我想使用 TestCafe 作为我的两个测试套件的测试运行器,但我不希望 TestCafe 在执行 API HTTP 测试时使用浏览器。这不可能吗?
我找不到关于此用例的任何 TestCafe 文档。提前致谢!
最佳答案
可以使用 TestCafe 来运行 Node.js 单元测试。您可以使用任何 Node.js API 并在 TestCafe 测试中需要任何 Node.js 模块。 page 指令是可选的,因此您不必为单元测试指定测试页。有一个小问题,您仍然需要指定浏览器参数,TestCafe 将在启动您的测试套件时创建一个浏览器窗口。
以下示例使用 got访问 GitHub API 的模块:
import got from 'got';
fixture `Github API`;
test(`Check DevExpress repositories`, async t => {
const requestResult = await got('https://api.github.com/orgs/DevExpress/repos');
const repos = JSON.parse(requestResult.body);
await t.expect(repos.some(repo => repo.name === 'testcafe')).eql(true);
});
您可以使用以下命令运行示例:
testcafe chrome:headless test.js
我们有一个允许在不启动浏览器的情况下运行 TestCafe 的建议:https://github.com/DevExpress/testcafe/issues/1314 .在实现之前,您可以使用 testcafe-browser-provider-nightmare浏览器提供商或 headless browsers在没有可见浏览器窗口的情况下运行测试。
关于testing - 我可以使用 TestCafe 进行非浏览器测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52728914/