【发布时间】:2018-07-30 17:06:20
【问题描述】:
在我的反应应用程序中,我正在尝试使用 puppeteer(开玩笑)编写 e2e 测试。
test.js
const puppeteer = require("puppeteer");
let browser;
let page;
describe("LoginPage", () => {
beforeAll(async () => {
browser = await puppeteer.launch({
headless: false,
slowMo: 250
});
page = await browser.newPage();
});
it("should display login page", async () => {
await page.goto("http://localhost:3000/");
const text = await page.evaluate(() => document.body.innerText);
expect(text).toContain("Unity");
});
it("should show error message if email is not correct", async() => {
await page.type("#email", "user");
await page.type("#password", "pass");
await page.click("button[type=submit]";
const errorMessage = await page.evaluate(
async () =>
document.getElementsByClassName("ui negative message container")[0]
);
console.log("errorMessage", errorMessage);
});
});
但这种 e2e 测试无法使其发挥作用。
我收到一个错误:
Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
有人可以帮我解决这个问题吗?
【问题讨论】:
-
您可以尝试通过将
jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000;添加到setupTestFrameworkScriptFile.js文件中来更改默认 jest 的超时时间(即 5 秒),您可以从 jest 配置中解决该文件:setupTestFrameworkScriptFile: require.resolve('./setupTestFrameworkScriptFile.js')- 另外,您可以看看铬,看看测试卡在哪里。它将帮助您找到根本原因
标签: reactjs asynchronous jestjs e2e-testing puppeteer