Невозможно запустить тесты с jest.each - PullRequest
1 голос
/ 06 февраля 2020

Я пытаюсь загрузить файлы в массив, а затем запустить тесты на них. Это мой код:

let files: string[] = []

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

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

Однако я получаю

Ошибка: .each вызывается с пустым массивом данных таблицы.

Что я делаю неправильно?

Спасибо!

1 Ответ

3 голосов
/ 06 февраля 2020

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(....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...