【发布时间】:2019-02-11 15:52:56
【问题描述】:
我想使用 puppetter 运行测试,我使用 puppetter beforeAll 设置测试并使用 done 参数完成设置
beforeAll(async (done) => {
try{
browser = await puppeteer.launch({
headless: false,
slowMo: 20,
args: [`--window-size=${width},${height}`]
})
page = await browser.newPage()
await page.setViewport({ width, height })
done()
} catch (e){
fail("SETUP FAILED:\n"+e)
}
}
而test,测试将在beforeAll 是done 之后运行,对吗?
test('Test Invalid Username Password', async () => {
try {
await page.goto(APP_URL)
await page.click('[data-testid="form-username"]')
await page.keyboard.type(username)
//omitted
} catch (e) {
fail('AN EXCEPTION IS THROWED\n'+e)
}
}, 200000);
我收到错误Cannot read property 'goto' of undefined"
为什么它有时会返回undefined 而有时却不返回?
我想这是因为铬还没有准备好?但是我已经写了await,还不够吗?
在铬准备好使用之前还有什么要检查的?不是未定义?
更新
未定义时的错误
Test Invalid Username Password
Failed: "AN EXCEPTION IS THROWED
TypeError: Cannot read property 'goto' of undefined"
51 | expect(errorMessage).toEqual(loginExpectedResult.TEST_INVALID_USERNAME_AND_PASSWORD)
52 | } catch (e) {
> 53 | fail('AN EXCEPTION IS THROWED\n'+e)
| ^
54 | }
55 | }, 200000);
56 |
at Env.fail (node_modules/jest-jasmine2/build/jasmine/Env.js:656:39)
at Object.fail (test/logintest/login.test.js:53:7)
at tryCatch (node_modules/regenerator-runtime/runtime.js:65:40)
at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:303:22)
at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:117:21)
at asyncGeneratorStep (test/logintest/login.test.js:17:103)
at _next (test/logintest/login.test.js:19:194)
at test/logintest/login.test.js:19:364
at Object.<anonymous> (test/logintest/login.test.js:19:97)
fail() 或许来自茉莉花?我使用 VSCode 自动完成功能找到了它。我以为是 Jest 的。不能用吗?
【问题讨论】: