2016-07-13 2 views
0

В настоящее время я могу определить области разработки и производства только .gitignore в моем файле конфигурации, где я могу явно установить либо process.env.ENV = 'prod', либо process.env.ENV = 'devel' в зависимости от текущей среды. И я могу быть уверен, что это значение будет импортировано при запуске arangod.Обнаружение «тестовой» среды в Foxx

Но модульные тесты не запускаются при запуске arangod, поэтому, возможно, мне нужно подключить некоторых слушателей к http-запросам или что-то, чтобы определить, является ли это запрос, который запускает модульные тесты? Можете ли вы помочь мне с этим плз?

Спасибо

+0

Не могли бы вы уточнить, что вы делаете, что вы пытаетесь сделать, а что же или не работает для вас прямо сейчас? Я не совсем уверен, как помочь вам без более подробного объяснения проблемы. –

+0

@AlanPlum Мне нужно каким-то образом обнаружить внутри моего кода, являются ли тесты mocha некоторой функцией, чтобы я мог выполнять «сухой запуск» вместо реального запуска некоторого кода. Например, у меня есть функция отправки сообщений электронной почты, которые я не хочу отправлять ничего при каждом запуске тестов, поэтому он должен просто сразу же вернуть true, если обнаруживает, что это «тестовая» среда. – artnikpro

+0

Спасибо, что поделились своим решением , Не могли бы вы также отметить это как принято? – dothebart

ответ

2

Я нашел два возможных решения:

1) Создать предварительно инициализирующий файл для испытаний, например, test/init.js со следующим содержанием:

process.env.ENV = 'test' 

затем добавить его в свой "tests" массив в manifest.json в качестве самой первой точки входа для испытаний:

"tests": [ 
    "test/init.js", 
    "**/__tests__/**/*.js" 
] 

Detect тестовой среды в любой части вашего кода с:

if (process.env.ENV === 'test') { ... } 

2) Поскольку тесты работают с мокко мы могли в lso использовать быстрое решение:

if (typeof it === 'function' && typeof describe === 'function') { 
    // code for Mocha environment only 
} 
Смежные вопросы