Как запускать разные блоки описания из разных файлов с помощью 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, немного поработав:
Определить
myArgument
как глобальный объект. Глобальные объекты разделяются между тестами и могут быть определены с помощьюglobals
в вашей конфигурации Jest (документы)Определите собственный секвенсор в вашей конфигурации Jest, чтобы определить последовательность, в которой выполняются тесты. Использовать
testSequencer
свойство в конфигурации Jest (документы)