reactjs - 我的应用程序代码如何知道应用程序是否正在使用 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
我对其他方法持开放态度(除了窗口属性)。有没有其他人做过类似的事情?
解决方案
TestCafe 向window
对象添加了一些属性,可以帮助您确定您的站点正在使用 TestCafe。例如,您可以检查window['%hammerhead%']
属性。如果存在,则意味着 TestCafe 可以工作。
但是,我需要提一下,它不是公共 API。未来几乎不会改变,但仍然不是100%的固溶体。
你能详细描述一下你的场景吗?如果很多用户觉得它有帮助,我们可以考虑在未来实现这个功能。
另外,我想提一下,您可以使用以下表单在 TestCafe 存储库中创建功能请求
推荐阅读
- recursion - 动态规划:孩子跑上楼梯
- haskell - 延续的结果必须是最终结果吗?
- node.js - 在 findOneAndUpdate 上生成散列密码
- c - 使用 C 中的 VLFeat
- php - While-Else 条件 PHP
- sql - SQLITE 转义注释“--”
- azure - Azure 资源组 - 移动到新的资源组。有没有停机时间?
- dart - 有没有办法从它的超类的对象实例化一个类而不手动分配所有变量?
- javascript - d3js - 使用 javascript 操作创建服务器端 SVG
- reactjs - 使用 react redux 显示记录的 ID 冲突