Как определить, какой тестовый фреймворк выполняет код - PullRequest
0 голосов
/ 28 октября 2019

Я написал небольшую библиотеку для улучшения тестирования моего веб-приложения и теперь хочу абстрагировать ее в отдельный проект с открытым исходным кодом. Библиотека достаточно универсальна, чтобы быть полезной не только для себя в других проектах, но и для других.

Единственная проблема заключается в том, что она реализует набор пользовательских сопоставителей и некоторую специфическую для шуток логику (это сделанодля удобства сделать реальный тестовый код менее подробным). Реализация эквивалентной логики для других тестовых сред должна быть простой, но я изо всех сил пытаюсь понять, как последовательно определить, какая тестовая среда работает (чтобы выбрать правильную логику утверждения).

Я знаю, что Jest устанавливает определенные переменные среды( Как определить, запускает ли JEST код или нет? ), но на основе ответа специфичная для jest переменная не всегда установлена, и NODE_ENV будет установлено в то же значение test с помощьювсе тестовые рамки. Какой самый чистый подход для определения того, какая тестовая среда выполняет тест? Спасибо

1 Ответ

0 голосов
/ 28 октября 2019

Посмотрев на все переменные среды, выяснив, какие из них согласованы, а какие нет, вот функция, которую я собрал для определения модуля запуска / фреймворка:

const path = require('path');
function detectFramework() {
  const launcher = process.env._;
  return path.basename(launcher);
}

Это будет работать независимоо том, как вы называете свой скрипт запуска в package.json. Надеюсь, кому-то это тоже пригодится.

...