我有一组使用TestCafe运行的测试。在一个组件中,我需要根据应用程序是否在testcafe中运行来确定是否向窗口公开一些数据,即
if (window.Testcafe === true) {
window.property = data;
}
这可以通过另一个暴露于window.Cypress的测试框架Cypress来实现。 我尝试使用代码对
的效果从testcafe测试/夹具在window上设置属性test('Test 1', async t => {
await t.eval(() => {window.Testcafe = true});
const val = await t.eval(() => window.Testcafe);
// val === true
})
// In component window.Testcafe is false
我愿意接受其他方法(除了窗口属性之外)。还有其他人做过类似的事情吗?
答案 0 :(得分:3)
TestCafe将一些属性添加到window
对象中,可以帮助您确定您的站点正在使用TestCafe。例如,您可以检查window['%hammerhead%']
属性。如果存在,则表示TestCafe有效。
但是,我需要提一下,它不是公共API。将来几乎不会更改,但仍不是100%的固定解决方案。
能否请您详细描述您的情况?如果许多用户认为它有用,我们将来可以考虑实现此功能。
此外,我想提一下您可以使用以下form
在TestCafe存储库中创建功能请求答案 1 :(得分:2)
测试开始执行时,组件已加载。
因此在测试中设置TestCafe
变量为时已晚。
一种测试TestCafe托管的解决方法是:
if ( window.localStorage.nativeStorageKey && window.localStorage.nativeStorageKey.startsWith('hammerhead')) {
window.property = data;
}