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
