исходное сообщение на stryker-mutator.io

Страйкер 0.34 уже здесь. Если вы не знакомы с тестированием на мутации, это способ проверить эффективность ваших тестов. Stryker - это среда тестирования мутаций для JavaScript и TypeScript. Эта новая версия содержит функции, которые помогут вам начать работу. Еще никогда не было так просто провести мутационное тестирование вашего JS-проекта!

Установите Stryker через командную строку:

npm i stryker stryker-api --save-dev

Или запустите stryker init в корне вашего проекта:

npx stryker init

Некоторые особенности, о которых мы хотим поговорить:

Запуск командного теста

Страйкер всегда был и всегда будет агностиком тестировщиков. Неважно, какой инструмент для запуска тестов вы используете. Однако всегда требовалось установить плагин для запуска тестов. Вы используете Jest? Установите "stryker-jest-runner". Хотите использовать мокко? Тогда страйкер-мокко-бегун - именно то, что вам нужно. Это отлично работает, если выбранная программа запуска тестов поддерживается, но что делать, если ваша программа запуска тестов не поддерживается? Например, Ava.js, node-tap или Intern, или, может быть, у вас есть собственная команда npm test. Вот почему мы добавили 'command' средство запуска тестов.

Настройте его в конфигурации вашего страйкера:

// stryker.conf.js
{
  testRunner: 'command',
  // Or leave out testRunner, 'command' is the default test runner
  commandRunner: {
    command: 'npm run mocha' 
    // optionally choose a different command to run
  }
}

Stryker поставляется с средством запуска командного теста, поэтому ему не нужны дополнительные плагины. Средство выполнения командного теста просто запустит ваш npm test скрипт. Если код выхода 0, тесты прошли успешно. В противном случае они потерпели неудачу.

Страйкер ограничен в способах оптимизации производительности. Например, он запускает процесс нового узла для каждого тестового запуска. Так что, если ваш тестовый бегун поддерживается через плагин тестового бегуна, это все равно будет подходящим вариантом.

Средство выполнения командного теста по умолчанию запускает npm test. Вы можете настроить другую команду с помощью конфигурационного ключа commandRunner.

Особая благодарность Diego R.B. за то, что вдохновили нас реализовать это.

Нулевая конфигурация

Теперь Stryker выбирает разумные значения по умолчанию для всех настроек. Это означает, что теперь вы можете запускать Stryker без какой-либо конфигурации. Он будет искать файлы * .js для изменения в ваших каталогах src и lib (за исключением очевидных тестовых файлов, таких как app.spec.js). Анализ покрытия будет отключен и будет использован запуск командного теста.

npm install --save-dev stryker stryker-api
npx stryker run

Примечание. Мутатор по умолчанию, который использует Stryker, по-прежнему будет устаревшим мутатором es5 (входит в комплект Stryker). Со временем мы перенесем это на использование мутатора 'javascript' (поддерживающего ESNext).

С этими настройками по умолчанию теперь также легко запустить Stryker без файла конфигурации, если вы хотите изменить только один или два параметра конфигурации. Например:

npx stryker run --testRunner mocha --mutator javascript

И снова отдельная благодарность Diego R.B. за то, что вдохновили нас реализовать это.

Благодаря этой функции, Stryker теперь практически заменяет mutode.

Начальные предустановки

С stryker init (либо с помощью stryker-cli, либо с помощью npx stryker init) вы можете инициализировать Stryker в своем репозитории. Он задает вопросы через анкету, например: Какой инструмент для выполнения тестов вы хотите использовать? и Какую среду тестирования вы хотите использовать?. Иногда вы можете не знать ответа на эти вопросы. Кроме того, для начала может потребоваться гораздо больше настроек. Именно поэтому мы добавили в справочник Stryker раздел гайды. Теперь мы интегрировали их в команду stryker init.

$ stryker init
? Are you using one of these frameworks? Then select a preset configuration. (Use arrow keys)
 
> angular-cli
react
vueJs
──────────────
None/other

Выбор предустановки сразу же поможет вам начать работу! Он создает файл конфигурации и устанавливает правильные плагины. Если вы выберете здесь None/other, вы все равно перейдете к обычной анкете.

Особая благодарность wmaarts за добавление этой функции.

Плагин тестера веб-компонентов

В этом выпуске Stryker мы также выпустили версию 0.1.0 stryker-wct-runner. Установите его с помощью:

$ npm i stryker-wct-runner --save-dev

Настройте его с помощью:

{
  testRunner: 'wct'
}

С помощью этого плагина мы теперь поддерживаем проекты Polymer cli. Веб-компонент-тестер запускает ваши тесты в реальном браузере. Однако на данный момент он не поддерживает ни одну из функций анализа покрытия. Если вы хотите, чтобы они поддерживались, пожалуйста, откройте вопрос. Вы также можете ознакомиться с проблемами, которые мы открыли на стороне полимеров. Любая помощь действительно приветствуется.

Что дальше?

Мы по-прежнему сосредоточены на том, чтобы выпустить v1 за дверь. Есть основания полагать, что это произойдет в первом квартале следующего года. V1 в основном будет удалять устаревшие функции. Мы также представим более предсказуемый график выпуска со строгими политиками семантического управления версиями. Быть в курсе.

Информация об этих новых функциях или подготовка к версии 1 приветствуются!

исходное сообщение на stryker-mutator.io