Async/await t 个测试代码在 TestCafe 的 beforeEach 中不起作用
Async/await t test codes are not working in in beforeEach of TestCafe
当我尝试在 TestCafe 中使用 beforeEach
时,其中包含一些测试代码的函数似乎无法正常工作。
我在所有不同的固定装置和测试中使用 doLogin
。
不工作
const doLogin = async (t) => {
const login = new Login();
await t
.maximizeWindow()
.typeText(login.emailInput, accounts.EMAIL_SUCCESS, { replace: true, paste: true })
.expect(login.emailInput.value).eql(accounts.EMAIL_SUCCESS, 'check an email')
.typeText(login.passwordInput, accounts.PASSWORD, { paste: true })
.click(login.loginButton);
};
fixture`App > ${menuName}`
.page`${HOST}`
.beforeEach(async (t) => {
// This function is called
// but tests inside the function were not run
doLogin(t)
});
带夹具的工作箱
fixture`App > ${menuName}`
.page`${HOST}`
.beforeEach(async (t) => {
const login = new Login();
// But this case is working.
await t
.maximizeWindow()
.typeText(login.emailInput, accounts.EMAIL_SUCCESS, { replace: true, paste: true })
.expect(login.emailInput.value).eql(accounts.EMAIL_SUCCESS, 'check an email')
.typeText(login.passwordInput, accounts.PASSWORD, { paste: true })
.click(login.loginButton);
});
从测试调用的工作案例
test(`show all ${menuName} menu's components`, async (t) => {
// When I added a function directly into a test function then it worked.
doLogin(t);
// some codes
谁能告诉我这段代码中的问题?
在中表示At the moment test hooks run, the tested webpage is already loaded, so that you can use test actions and other test run API inside test hooks.
提前致谢。
您似乎在 doLogin()
调用之前错过了 await
关键字:
fixture`App > ${menuName}`
.page`${HOST}`
.beforeEach(async (t) => {
// Don't forget about await
await doLogin(t)
});
由于实现细节,在某些情况下可以在没有 await
的情况下调用 async
函数,但最好不要依赖它并始终使用 await
和 async
函数。
如果您添加了 async
关键字并且它没有修复测试,请随时在 TestCafe 存储库中创建 a bug report 并提供一个完整的示例 运行重现问题。
当我尝试在 TestCafe 中使用 beforeEach
时,其中包含一些测试代码的函数似乎无法正常工作。
我在所有不同的固定装置和测试中使用 doLogin
。
不工作
const doLogin = async (t) => {
const login = new Login();
await t
.maximizeWindow()
.typeText(login.emailInput, accounts.EMAIL_SUCCESS, { replace: true, paste: true })
.expect(login.emailInput.value).eql(accounts.EMAIL_SUCCESS, 'check an email')
.typeText(login.passwordInput, accounts.PASSWORD, { paste: true })
.click(login.loginButton);
};
fixture`App > ${menuName}`
.page`${HOST}`
.beforeEach(async (t) => {
// This function is called
// but tests inside the function were not run
doLogin(t)
});
带夹具的工作箱
fixture`App > ${menuName}`
.page`${HOST}`
.beforeEach(async (t) => {
const login = new Login();
// But this case is working.
await t
.maximizeWindow()
.typeText(login.emailInput, accounts.EMAIL_SUCCESS, { replace: true, paste: true })
.expect(login.emailInput.value).eql(accounts.EMAIL_SUCCESS, 'check an email')
.typeText(login.passwordInput, accounts.PASSWORD, { paste: true })
.click(login.loginButton);
});
从测试调用的工作案例
test(`show all ${menuName} menu's components`, async (t) => {
// When I added a function directly into a test function then it worked.
doLogin(t);
// some codes
谁能告诉我这段代码中的问题?
在At the moment test hooks run, the tested webpage is already loaded, so that you can use test actions and other test run API inside test hooks.
提前致谢。
您似乎在 doLogin()
调用之前错过了 await
关键字:
fixture`App > ${menuName}`
.page`${HOST}`
.beforeEach(async (t) => {
// Don't forget about await
await doLogin(t)
});
由于实现细节,在某些情况下可以在没有 await
的情况下调用 async
函数,但最好不要依赖它并始终使用 await
和 async
函数。
如果您添加了 async
关键字并且它没有修复测试,请随时在 TestCafe 存储库中创建 a bug report 并提供一个完整的示例 运行重现问题。