Общий тестовый прибор для определения скорости вращения огурца и жасмина
Как мне разделить осветительные приборы между тестом на огурец и жасмин?
Я могу создать прибор с одним тестом интеграции с жасминовым сервером, который можно использовать с другими тестами интеграции с жасминовым сервером. Но (из-за разных "зеркал" я думаю?) Я не могу использовать один и тот же прибор в тесте на огурец. В коллекции Mongo нет данных, созданных в ходе интеграционных тестов сервера jasmine.
Одним из вариантов является сохранение состояния в плоский файл или нечто подобное за пределами метеора. Но было бы намного проще ссылаться на общую коллекцию (на том же зеркале?) Для тестовых приборов. Это возможно?
3 ответа
Вы можете использовать шаблон "пакет-приспособление" для светильников, чтобы добиться того, что вы просите. Смотрите здесь: https://github.com/meteor-velocity/velocity
Любые пакеты, которые вы создаете с debugOnly
Флаг в дескрипторе пакета не будет включен в производство.
Все возможно. Однако я не рекомендую делать тесты зависимыми друг от друга. Как гласит Википедия:
В идеале каждый тестовый пример не зависит от других.
Несколько причин, почему ваши тесты должны быть независимыми:
- Проще сузить проблему, если тесты не пройдены (если тесты зависят друг от друга, у вас будет несколько тестовых сбоев, в которых просто предшественник потерпел неудачу)
- Позволяет распараллеливать, чтобы уменьшить общее время выполнения теста (по мере роста вашего набора тестов)
В настоящее время Velocity жестко кодирует порт 5000 для экземпляра тестового зеркала вашего приложения, но я знаю, что предпринимаются попытки сделать этот порт настраиваемым (что должно было бы поддерживаться самими тестовыми средами).
Краткий ответ на этот вопрос таков: общее состояние выполнения между инструментами тестирования не поддерживается (хотя оба могут выполнять код из одного и того же пакета фикстур). Использование, которое я собираюсь использовать, не является традиционным шаблоном и включает в себя некоторую зависимость между тестами.
Чтобы получить то, к чему я стремился, мне пришлось написать собственный инструмент. Что я хотел, так это обертку вокруг nock, которая помогала мне генерировать тестовые данные, записывая результаты моих тестов e2e с включенными интеграциями.