私は Puppeteer と Jest を使用してフロントエンド テストを実行しています。
私のテストは次のようになります:
describe("Profile Tab Exists and Clickable: /settings/user", () => {
test(`Assert that you can click the profile tab`, async () => {
await page.waitForSelector(PROFILE.TAB);
await page.click(PROFILE.TAB);
}, 30000);
});
テストを実行すると、すべてが期待どおりに動作することもあります。また、エラーが発生することもあります。
タイムアウト - jest.setTimeout で指定された 5000 ミリ秒のタイムアウト内に非同期コールバックが呼び出されませんでした。
at node_modules/jest-jasmine2/build/queue_runner.js:68:21 <br/> at Timeout.callback [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:633:19)
これは以下の理由で奇妙です:
タイムアウトを30000に指定しました
このエラーが発生するかどうかは、非常にランダムなようです
なぜこうなった?
ベストアンサー1
ここで指定するタイムアウトは、デフォルトのタイムアウトよりも短くする必要があります。
デフォルトのタイムアウトは で5000
、フレームワークのデフォルトは です。テスト内でタイムアウトを指定するにはjasmine
、jest
jest.setTimeout(30000);
ただし、これはテストに固有のものになります。または、フレームワークの構成ファイルを設定することもできます。
// jest.config.js
module.exports = {
// setupTestFrameworkScriptFile has been deprecated in
// favor of setupFilesAfterEnv in jest 24
setupFilesAfterEnv: ['./jest.setup.js']
}
// jest.setup.js
jest.setTimeout(30000)
以下のスレッドも参照してください:
jasmine.DEFAULT_TIMEOUT_INTERVAL を設定可能にする #652
PS: スペルミスsetupFilesAfterEnv
(つまりsetupFileAfterEnv
) でも同じエラーが発生します。