Я написал небольшую библиотеку для улучшения тестирования моего веб-приложения и теперь хочу абстрагировать ее в отдельный проект с открытым исходным кодом. Библиотека достаточно универсальна, чтобы быть полезной не только для себя в других проектах, но и для других.
Единственная проблема состоит в том, что он реализует набор пользовательских сопоставлений и некоторую специфичную для jest логику (это сделано для удобства, чтобы сделать реальный тестовый код менее подробным). Реализация эквивалентной логики для других тестовых сред должна быть простой, но я изо всех сил пытаюсь понять, как последовательно определить, какая тестовая среда работает (чтобы выбрать правильную логику утверждения).
Я знаю, что Jest устанавливает определенные переменные окружения определить, выполняет ли JEST код или нет? ), но на основе ответа специфичная для jest переменная не устанавливается постоянно, и для NODE_ENV
будет установлено то же test < Значение / code> по всем тестовым фреймворкам. Какой самый чистый подход для определения того, какая тестовая среда выполняет тест? Спасибо
1 ответ
Посмотрев на все переменные среды, выяснив, какие из них согласованы, а какие нет, вот функция, которую я собрал для определения модуля запуска / фреймворка:
const path = require('path');
function detectFramework() {
const launcher = process.env._;
return path.basename(launcher);
}
Это будет работать независимо от того, как вы называете сценарий запуска в package.json
. Надеюсь, кто-то еще найдет это полезным.
Новые вопросы
javascript
Для вопросов, касающихся программирования в ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (исключая ActionScript). Этот тег редко используется отдельно, но чаще всего ассоциируется с тегами [node.js], [jquery], [json] и [html].