Javascript 自定义初始化函数未在TestCafe中执行
我正在创建一个初始化函数来准备我在TestCafe中进行的几乎所有测试。但是当运行代码时,它不会被触发 我试过:Javascript 自定义初始化函数未在TestCafe中执行,javascript,typescript,testing,automated-tests,testcafe,Javascript,Typescript,Testing,Automated Tests,Testcafe,我正在创建一个初始化函数来准备我在TestCafe中进行的几乎所有测试。但是当运行代码时,它不会被触发 我试过: -在没有函数的情况下执行testdriver:Works -将其包装在没有if语句的函数中:有效 -使用if语句将其包装到函数中:不起作用 -将if语句包装在较小的函数中,并在init脚本内的自执行函数中执行它们:不起作用 export async function setupEnvironment(Method: Method, Action?: Action, Frame: nu
-在没有函数的情况下执行testdriver:Works
-将其包装在没有if语句的函数中:有效
-使用if语句将其包装到函数中:不起作用
-将if语句包装在较小的函数中,并在init脚本内的自执行函数中执行它们:不起作用
export async function setupEnvironment(Method: Method, Action?: Action, Frame: number = 43, Viewport: Viewport = 1) {
await u.selectFrame(Frame);
if (Method === "") {
await t.click()}
else if (Method === "") {
await t.click()}
else if (Method === "") {
await t.click()}
else if (Method === "") {
await t.click()}
if (Action === "") {
await t.click();
} else if (Action === "") {
await t.click();
}
}
或
预期行为:
代码执行
实际行为:
什么都没发生我不知道为什么在第一种情况下什么都没发生。我认为,没有人可以给你一个答案,没有页面测试提供的功能。在第二种情况下,您忘记调用render函数。它是在setupEnvironment中定义的,但从未调用过。谢谢您的回答,我已经让它工作了,它不工作的原因是没有后续操作。。我最好的猜测是TestCafe扫描是正手的测试用例,如果没有调用测试驱动程序,测试将自动通过,而不会进入外部函数。这不太正确。TestCafe test函数(test的第二个参数)是异步的。这意味着,如果您等待某个函数执行,测试将等待该函数完成。对于这种行为,不需要使用。我更新了Artem的答案,以显示
setupEnvironment
函数实现的可能选项。
export async function setupEnvironment(Method: Method, Action?: Action, Frame: number = 43, Viewport: Viewport = 1) {
async function selectAction(){
if (Action === "") {
await t.click();
} else if (Action === "") {
await t.click();
}
}
async function selectMethod() {
if (Method === "") {
await t.click()}
else if (Method === "") {
await t.click()}
else if (Method === "") {
await t.click()}
else if (Method === "") {
await t.click()}
}
(async function render(){
selectMethod()
await u.selectFrame(Frame);
selectAction()
})
}
test('name test case', async (t) => {
await i.setupEnvironment(Method., Action.);
});