无法使用jest.each运行测试

时间:2020-02-06 11:01:15

标签: javascript typescript testing jestjs

我正在尝试将文件加载到数组中,然后在它们上运行测试。这是我的代码:

let files: string[] = []

describe.only("Name of the group", () => {
  beforeAll(() => {
    files = ["a", "b"]
  })

  test.each(files)("runs", f => {
    console.log(f)
  })
})

但是,我得到

错误:.each用一个空的表数据数组调用。

我在做什么错?

谢谢!

1 个答案:

答案 0 :(得分:3)

test.each需要一个表值作为输入。这意味着一个数组的数组。但这是自动修复的,因此不必担心。

但是呼叫顺序在这里很重要!请注意,测试是在实际运行之前定义的。因此,beforeAll将在定义测试后运行。这意味着在注册测试时不会定义files数组。

为解决此问题,您需要确保在读取和注册测试之前,先填充files数组

是这样的:

let files: string[] = []

describe('Something Something', () => {
  beforeAll(() => files = [["a"], ["b"]]);

  describe.only("Name of the group", () => {

    test.each(files)("runs", f => {})
  })
})

或者只是在玩笑之外共同定义:

const files = [['test1'],['test2']];

describe(....