首页 > 解决方案 > 无法从 Fixture.before 方法调用函数

问题描述

我正在尝试使用多个测试实现一个夹具,所有测试都相互依赖因此我想清理数据库并从 Fixture.before 方法只执行一次登录所以它看起来像这样:

fixture `testProject`.page(baseUrl)
    .before(async t => {
    await loginPM.login()
    await base.clearDB()
})
.beforeEach(async t => {
// some steps before each test
})
test 1
test 2 
test 3

此方案引发以下异常:


Fixture.before 钩子中的错误 - 无法在应执行测试控制器操作的上下文中隐式解析测试运行。改用测试函数的 't' 参数


为什么 testcafe 不支持从 Fixture.before 方法调用函数的任何想法

标签: testingautomationautomated-testse2e-testingtestcafe

解决方案


fixture.before 钩子在测试之间运行,并且无权访问测试页面。有关其使用的详细信息,请参阅以下帮助主题:Fixture.before 方法。如果您需要在开始所有测试之前对每个夹具执行一次测试操作(单击、键入文本等),请参阅此模块:testcafe-once-hook模块。这是一个如何使用它的示例:https ://github.com/AlexKamaev/testcafe-once-hook-example 。


推荐阅读