ค้นหาเว็บไซต์

jestjs - วิธีการลองทดสอบที่ล้มเหลวซ้ำโดยใช้ Jest และ Typescript


ฉันกำลังเขียนการทดสอบอัตโนมัติที่ใช้ Jest และ Typescript ฉันได้ทำตามเอกสารนี้เพื่อทำการลองใหม่สำหรับการทดสอบที่ล้มเหลว แต่มันไม่ทำงาน ฉันเดาว่าเป็นเพราะมันใช้ได้แค่กับ JavaScript แต่ถ้าฉันใช้ Typescript มีอะไรที่ฉันสามารถทำให้มันใช้ได้ไหม?

https://github.com/bluzi/jest-retries

คำตอบ #1

ใช้ API jest.retryTimes ซึ่งมีตั้งแต่ Jest v25 (2019):

jest.retryTimes(1);
let j = 0;
describe("Flaky", () => {
  it("should pass only on second run", async () => {
    expect(j++).toEqual(1);
  });
});

โปรดทราบ ตัวเลือกนี้ไม่สามารถใช้งานได้ทั่วโลก คุณต้องใส่มันต่อไฟล์/สเปก

คำตอบ #2

เพื่อขยายคำตอบจาก dhilt คุณสามารถตั้งค่ามันในระดับทั่วโลกผ่านไฟล์การตั้งค่า

ฉันไม่แน่ใจว่านี่เป็นการเปลี่ยนแปลงล่าสุดหรือไม่

// jest.config.json
{
  setupFilesAfterEnv: ["<rootDir>/jest.setup.tsx"],
  
  ...

}
// jest.setup.tsx

... 

jest.retryTimes(5, { logErrorsBeforeRetry: true });

... // any other pre/post test logic

https://jestjs.io/docs/jest-object#jestretrytimesnumretries-options

บทความที่เกี่ยวข้อง