Как запускать разные блоки описания из разных файлов с помощью Jest

Мне нужно запустить разные описания блоков из разных файлов в определенном порядке. Кроме того, мне нужно передать 1 аргумент между этими блоками, но аргумент должен сохранять состояние, в котором он оставил предыдущее описание. Например, у меня это:

file1.test.js

export const Test1= () => {
   describe("Describe 1", () => {
     test("test1", async () => {//my test1
     })
    test("test2", async () => {//my test2
     })

   describe("Describe 2", () => {
     test("test3", async () => {//my test3
     })
    test("test4", async () => {//my test4
     })
}

file2.test.js

export const Test2= () => {
   describe("Describe 3", () => {
     test("test5", async () => {//my test5
     })
    test("test6", async () => {//my test6
     })

   describe("Describe 4", () => {
     test("test7", async () => {//my test7
     })
    test("test8", async () => {//my test8
     })
}

Я хочу запустить тесты в следующем порядке с этим аргументом:

let myArgument;
Test1
   Describe 1(myArgument)
Test2
   Describe 3
Test1
   Describe 2(myArgument)
Test2
   Describe 4

Я использую для запуска тестов: jest --runInBand

1 ответ

Как правило, рекомендуется держать тесты изолированными друг от друга, чтобы сбои одного теста не передавались каскадом в другие тесты. Playwright рекомендует использовать для тестов разные контексты браузера - контексты браузера представляют собой параллельные изолированные среды выполнения. Они дешевы / быстро создаются и могут повторно использовать один экземпляр браузера.

Сказав это, можно достичь вашего варианта использования с Jest, немного поработав:

  1. Определить myArgumentкак глобальный объект. Глобальные объекты разделяются между тестами и могут быть определены с помощьюglobalsв вашей конфигурации Jest (документы)

  2. Определите собственный секвенсор в вашей конфигурации Jest, чтобы определить последовательность, в которой выполняются тесты. ИспользоватьtestSequencerсвойство в конфигурации Jest (документы)

Другие вопросы по тегам