我有一个测试套件,需要使用浏览器进行UI测试。我也有一个非浏览器API测试套件(HTTP请求/响应)。
我想使用TestCafe作为两个测试套件的测试运行程序,但是我不希望TestCafe在执行API HTTP测试时使用浏览器。这不可能吗?
我找不到该用例的任何TestCafe文档。预先感谢!
答案 0 :(得分:5)
可以使用TestCafe来运行Node.js单元测试。您可以在TestCafe测试中使用任何Node.js API并需要任何Node.js模块。页面指令是可选的,因此您不必为单元测试指定测试页面。还有一个小问题,您仍然必须指定浏览器参数,并且在启动测试套件时,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在没有可见浏览器窗口的情况下运行测试。