首页 > 解决方案 > 我的应用程序代码如何知道应用程序是否正在使用 testcafe 进行测试?

问题描述

我有一套使用 TestCafe 运行的测试。在一个组件中,我需要根据应用程序是否在 testcafe 中运行来知道是否向窗口公开一些数据,即

if (window.Testcafe === true) {
    window.property = data;
}

这可以通过 Cypress 实现,它是另一个测试框架,它公开了 window.Cypress。我尝试从 testcafe 测试/固定装置的窗口上设置一个属性,使用代码达到

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

我对其他方法持开放态度(除了窗口属性)。有没有其他人做过类似的事情?

标签: reactjsautomated-testse2e-testingweb-testingtestcafe

解决方案


TestCafe 向window对象添加了一些属性,可以帮助您确定您的站点正在使用 TestCafe。例如,您可以检查window['%hammerhead%']属性。如果存在,则意味着 TestCafe 可以工作。

但是,我需要提一下,它不是公共 API。未来几乎不会改变,但仍然不是100%的固溶体。

你能详细描述一下你的场景吗?如果很多用户觉得它有帮助,我们可以考虑在未来实现这个功能。

另外,我想提一下,您可以使用以下表单在 TestCafe 存储库中创建功能请求


推荐阅读