2015-02-12 2 views
0

Как я могу запустить тест Ember-cli в jenkins?Как запустить тест ember-cli в jenkins

В настоящее время для запуска тестов я добавил шаг сборки «Выполнить оболочку» со следующими в нем:

ember test --silent --config-file ${WORKSPACE}/testem.json > ${WORKSPACE}/xunit-ember-dev.xml; 

Но это не работает, это выход

<testsuite name="Testem Tests" tests="0" failures="0" timestamp="Thu Feb 12 2015 14:20:24 GMT+0100 (CET)" time="0"> 

</testsuite> 

Если Я делаю то же самое вручную в рабочей области, как пользователь jenkins, я получил ожидаемые результаты.

<testsuite name="Testem Tests" tests="70" failures="0" timestamp="Thu Feb 12 2015 15:06:40 GMT+0100 (CET)" time="15"> 
    <testcase name="PhantomJS 1.9 Integration - Homepage: Should display the homepage"/> 
    <testcase name="PhantomJS 1.9 Integration - Profile: Should display the profile sections"/> 
    ... 

Каждый раз, когда я заставляю Дженкинса проводить тесты, он не находит тестов.

Благодаря

+0

Любое странное для выхода журнала? – Tim

+0

Нет логов дженкинсов в порядке, ничего особенного в нем. –

ответ

0

Просто добавьте Execute Shell шаг, который работает:

npm run test > results.tap 

Эта команда говорит НПМ запустить тест скрипт называется и перенаправить вывод в файл с именем results.tap. (Цель перенаправления на файл results.tap - это то, что вы можете взять этот файл и передать его на пост-сборку «Опубликовать результаты теста TAP» и получить целые диаграммы тестовых прогонов.)

В вашем пакете.json у вас должен быть блок, который выглядит следующим образом:

"scripts": { 
    "start": "ember server", 
    "build": "ember build", 
    "test": "ember test" 
    }, 

(Это по умолчанию от Ember-кли 1.13.8 и, вероятно, несколько версий ранее, чем это.)

Используя этот подход, вы не должны иметь ember-cli глобально установлен на вашей системе сборки: он просто выберет его из папки node_modules проекта.

Caveat emptor: вы, скорее всего, найдете сообщения в блогах/форумах, в которых сообщается, что вы запускаете npm run test | tee results.tap. Это запустит тесты, однако, он будет есть код возврата. (Если тестовый прогон завершился с ошибкой, процесс npm завершит выход с возвратным значением 1, но поскольку вы передаете вывод второй команде (tee), код возврата этой команды - это то, что видит дженкинс. В результате получается, что jenkins будет интерпретировать неудачи теста как успех и продолжить выполнение шагов сборки.)

Смежные вопросы