2016-09-20 5 views
0

У меня есть набор тестов, в котором используется библиотека wallaby, для которой требуется супертяжелый webpack build для использования. Проблема в том, что эта сборка webpack слишком тяжела, чтобы использовать ее, например, только для тестирования модели.Как реализовать некоторую команду перед тестом ExUnit с запуском некоторых тегов

Итак, я решил об этой функции:

  1. Tag всех тестах WALLABY с некоторым тегом, а именно: @tag :wallaby
  2. Проверьте, есть по крайней мере один помечено тест валлаби существует для выполнения тестов
  3. Если да, дождитесь сборки и запустите весь комплект тестов.

Это лучший дизайн? Как я могу это реализовать?

+0

«Как я могу его реализовать?» - это не вопрос, который нужно задать здесь. – mudasobwa

ответ

0

Согласно "Test Pyramid", у вас не должно быть много тестов UI, и вы должны запускать их редко, потому что они медленны и дороги.

Один подход был бы исключить wallaby тег из модульных тестов, добавив в ваш test_helpers:

ExUnit.configure exclude: [:wallaby] 

Сейчас работает mix test не будет запускать любые тесты пользовательского интерфейса, пока вы не запустите его с --include:

mix test --include wallaby 

Этот подход лучше, чем крючок перед тегом wallaby, потому что он явственник, и разработчик не удивится долговременным испытаниям на сборку и интеграцию.

Возможно, было бы неплохо добавить псевдоним mix в mix.exs, который запускает сборку webpack и запускает тест Wallaby. Это будет единственная команда, которая может использоваться в CI.