Я искал лучший способ выполнить модульное тестирование JS в среде maven CI. В настоящее время я собрал в своем проекте maven следующее:
изменяется в pom.xml для запуска тестов phantomjs на этапе тестирования сборки:
<плагин>
org.codehaus.mojo
exec-maven-plugin
1.1
<казни>
<выполнение>
Модульное тестирование PhantomJS
тест
<цели>
exec
<конфигурация>
<исполняемый> $ {project.basedir} / src / main / webapp / unittest / phantomcheck
<аргументы>
<аргумент> $ {project.basedir} / src / main / webapp / unittest / qunit-runner.js
$ {project.basedir} /src/main/webapp/unittest/tests/index.html
$ {project.build.directory} / surefire-reports
Итак, это прекрасно работает. Он запускает тесты qunit во время сборки на наших машинах для разработки и сборки (пока установлен PhantomJS). Тесты выполняются в автономной среде браузера без ограничений на тесты qunit. Другие интеграции maven / qunit, которые я видел, терпят неудачу из-за запуска тестов в Rhino или других средах JS, которые накладывают ограничения на типы тестов, которые мы можем писать. Кроме того, phantomjs дает нам возможность получать скриншоты тестовых запусков, которые помогают при устранении любых сбоев.
Недостатком моего подхода является то, что на машине сборки / разработки требуется установка PhantomJS. Я не знаю, как связать phantomJS в зависимости, чтобы разработчикам не нужно было беспокоиться об установке PhantomJS. Может ли кто-нибудь подтолкнуть меня в этом направлении? С чего начать?