1

我需要以确定的顺序运行来自不同文件的不同描述块。此外,我需要在此块之间传递 1 个参数,但该参数需要保持它离开之前描述的状态。例如,我有这个:

文件1.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
     })
}

文件2.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

4

1 回答 1

1

保持测试彼此隔离通常是一个好主意,这样一个测试的失败不会级联到其他测试。Playwright 建议使用不同的浏览器上下文进行测试——浏览器上下文是并发的、隔离的执行环境。它们创建起来便宜/快速,并且可以重用单个浏览器实例。

话虽如此,通过一些工作可以使用 Jest 实现您的用例:

  1. 定义myArgument为全局对象。全局对象在测试之间共享,并且可以globals在您的 Jest 配置(文档)中定义

  2. 在您的 Jest 配置中定义一个自定义排序器以定义执行测试的顺序。testSequencer在 Jest 配置中使用该属性(文档

于 2020-06-12T19:25:27.637 回答