簡體   English   中英

如何在失敗時不跳過套件中的測試?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM