Можно ли переопределить Jest .skip() из командной строки?

У меня есть интеграционный тест, для которого требуется небольшое количество кредитов API от третьей стороны. Тесты обычно проходят .skipped, но иногда мне хочется их запустить и потратить кредиты.

Прямо сейчас я вручную удаляю .skip, запускаю:

npx jest -t 'integration tests'

...затем снова добавьте .skip. Однако я обеспокоен тем, что случайно зафиксирую удаленный .skip, а говорить коллегам, чтобы они удалили .skip до того, как они запустят тесты, будет хлопотно.

Можно ли переопределить Jest .skip из командной строки? В документации Jest об этом не упоминается, но может быть какой-то другой способ.

Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
учебник по Javascript
учебник по Javascript
JavaScript - это язык программирования, который обычно используется для добавления интерактивности и других динамических функций на веб-сайты. Он...
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
D3.js - это обширная библиотека, используемая для привязки произвольных данных к объектной модели документа (DOM). Мы разберем основные варианты...
Освоение принципов SOLID в JavaScript: Пошаговое руководство
Освоение принципов SOLID в JavaScript: Пошаговое руководство
Принцип единой ответственности (SRP): класс должен иметь только одну причину для изменения. Другими словами, у него должна быть только одна...
JavaScript - For Loop
JavaScript - For Loop
Наиболее используемая компактная форма оператора цикла.
Неделя 1 - Карточки с временной шкалой
Неделя 1 - Карточки с временной шкалой
Поскольку это была первая неделя, я решил начать с простого. Предполагалось, что у меня будет временная шкала с несколькими карточками, которые можно...
1
0
86
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Согласно документации Jest CLI не имеет такой опции. Однако было бы достаточно просто сделать что-то вроде:

const _it = process.env.RUN_ALL ? it : xit;

_it("behaves correctly", () => { /* ... */ });

чтобы позволить вам контролировать, пропускаются ли определенные тесты или выполняются с использованием переменной среды.

В качестве альтернативы вы можете использовать различные параметры обнаружения тестов в конфигурации , чтобы сгруппировать свои тесты, например, по соглашение об именах файлов и предоставление точек входа для запуска различных групп по мере необходимости. Например, используя проекты с ​​разными testMatch, вы можете сделать что-то вроде:

{
  "scripts": {
    "test": "jest --selectProjects some",
    "test:all": "jest",
    "test:other": "jest --selectProjects other"
  }
}

Я так же подозревал, что вариант не существует. Что такое xit?

mikemaccana 23.11.2022 11:08
Ответ принят как подходящий

Основываясь на превосходном ответе @jonrsharpe, но делая намерение кода более явным, поскольку _it, xit и it одновременно трудно читать:

const testOrSkip = process.env.RUN_SKIPPED_TESTS ? test : test.skip;

testOrSkip("behaves correctly", () => {
  expect(true).toBeTruthy();
});

Тестирование:

$ npx jest src/backend/runme.test.ts

Test Suites: 1 skipped, 0 of 1 total
Tests:       1 skipped, 1 total
Snapshots:   0 total
Time:        3.566 s
Ran all test suites matching /src/backend/runme.test.ts/i.

$ export RUN_SKIPPED_TESTS='true'

$ npx jest src/backend/runme.test.ts

 PASS  src/backend/runme.test.ts
  ✓ behaves correctly (3 ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.951 s
Ran all test suites matching /src/backend/runme.test.ts/i.

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