![](/img/trans.png)
[英]How to clear a module mock between tests in same test suite in Jest?
[英]How to not skip tests in a suite upon failure?
我有大量測試,包含在“套件”或文件中,每個套件中可能有大約 10-15 個測試。 我遇到的問題是,如果套件中的第一個測試失敗,那么它只會跳過該套件中測試的所有 rest,然后繼續下一個套件。 這意味着,假設我有一套 10 個測試,如果第一個測試失敗,則完全跳過接下來的 9 個。 我希望它們在經過時仍然運行。 否則,現在我必須調查並重新運行 10 次測試,而不僅僅是失敗的測試。
我試過使用--bail
選項,但這顯然只適用於測試套件,而不適用於套件中的單個測試。 是否有任何選項或方法可以強制 Jest 不跳過文件中測試的 rest,而不管先前測試的通過/失敗結果如何?
我也在每個代碼之后添加了。
這是 jest.config.js 的相關部分
testTimeout: 900000, forceExit: true, clearMocks: true, globals: { Headless: false, NoLogin: true },
這是一個測試文件的樣子:
"use strict";
import _ from 'lodash'
import { expect } from 'chai';
describe("test pages ", () => {
let searchPage
test("test page 1", async () => {
await searchPage.openPage1();
expect(await searchPage.waitForElement(element 1))
})
test("test page 2", async () => {
await searchPage.openPage2();
expect(await searchPage.waitForElement(element 2))
})
test("test page 3", async () => {
await searchPage.openPage3();
expect(await searchPage.waitForElement(element 3))
})`
基本上現在發生的情況是,如果測試 1 失敗,那么它會完全跳過接下來的兩個測試,並且它們顯示為待處理,並且永遠不會運行。
這是 After Each 代碼:
try {
await global.driver.close();
} catch (e) {
console.log(e);
}
這是開玩笑的配置:
module.exports = {
testEnvironment: "node",
setupFilesAfterEnv: [`./testConfig/testSetup.js`],
reporters: [
"default",
"jest-junit",
"jest-html-reporters",
[
"jest-simple-dot-reporter",
{
color: true
}
]
],
transformIgnorePatterns: ["node_modules/(?!(@qe/ui_automation_core)/)"],
testTimeout: 900000,
forceExit: true,
clearMocks: true,
globals: { Headless: false , NoLogin: true } ,
};```
好的。 我弄清楚是什么導致了這個問題。
原來這個測試套件的原始所有者在配置設置中使用了 jasmine-fail-fast
import * as failFast from 'jasmine-fail-fast'
和jasmine.getEnv().addReporter(failFast.init())
所以我注釋掉了這些行,現在我得到了正確的行為(它運行所有測試,而不是在第一次失敗后跳過所有內容)。
擔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.