Typescript 如何在TestCafe中实现Percy
我正在使用并尝试集成Percy进行视觉回归测试。我已经导入了,但出现以下错误Typescript 如何在TestCafe中实现Percy,typescript,google-chrome,testing,automated-tests,testcafe,Typescript,Google Chrome,Testing,Automated Tests,Testcafe,我正在使用并尝试集成Percy进行视觉回归测试。我已经导入了,但出现以下错误ReferenceError:XMLHttpRequest未定义。任何关于如何实现这一点的见解都会有所帮助 const PercyAgent = require('@percy/agent').default; export default class Helper { takeSnapshot(snapshotName: any, snapshotOptions: any) { const percyAge
ReferenceError:XMLHttpRequest未定义
。任何关于如何实现这一点的见解都会有所帮助
const PercyAgent = require('@percy/agent').default;
export default class Helper {
takeSnapshot(snapshotName: any, snapshotOptions: any) {
const percyAgentClient = new PercyAgent({
clientInfo: 'awesome-percy-sdk@0.0.1',
environmentInfo: 'some helpful os or browser information for debugging',
});
percyAgentClient.snapshot(snapshotName, snapshotOptions);
}
}
Percy代理客户端正在TestCafe节点进程中运行,而不是在浏览器中运行。这就是为什么会出现错误 在第一步中,应按照以下文档将Percy客户端插入浏览器:
在第二步中,您应该按照文档中的建议将Helper类转换为
客户机函数。您还可以利用它将Percy和TestCafe结合使用
导入库后,使用TestCafe在e2e测试中通过Percy拍摄快照非常简单:
import percySnapshot from '@percy/testcafe';
fixture('MyFixture')
.page('http://devexpress.github.io/testcafe/example');
test('Test1', async t => {
await t.typeText('#developer-name', 'John Doe');
await percySnapshot(t, 'TestCafe Example');
});
请记住在运行测试之前设置特定于项目的Percy令牌,以便Percy可以在每次运行测试时创建新的构建
要在Mac OS上设置令牌,请执行以下操作:
export PERCY_TOKEN=[your-project-token]
要在Windows上设置令牌,请执行以下操作:
set PERCY_TOKEN=[your-project-token]
您可以向package.json添加新脚本以简化测试运行:
"scripts": {
"percy:chrome": "percy exec -- testcafe chrome src/testcafe/tests"
},
此外,您还可以将其用作设置方向
"scripts": {
"percy:chrome": "percy exec -- testcafe chrome src/testcafe/tests"
},