Ответ 1
Предположим, у вас есть тесты Mocha с вашим package.json
, т.е. вы запускаете тесты с npm test
. Для получения дополнительной информации см. Https://docs.npmjs.com/cli/test.
В вашей сборке/выпуске Visual Studio Online:
- Добавьте задачу "npm" для установки JUnit Reporter
- Запустите пользовательскую команду
install mocha-junit-reporter
- Запустите пользовательскую команду
- Добавить задачу "npm"
- Выполнить пользовательский
test -- --reporter mocha-junit-reporter
командыtest -- --reporter mocha-junit-reporter
- Советы: Вы можете увеличить тайм-аут, добавив
--timeout 30000
потому что агент сборки может работать медленнее, чем ваш компьютер разработчика
- Выполнить пользовательский
- Затем добавьте задачу "Опубликовать результаты теста"
- Установите "Формат результата теста" на "JUnit"
- Установите флажок "Продолжить при ошибке"
- В разделе "Параметры управления"> "Запустить эту задачу" установите для него значение "Даже если предыдущая задача не удалась, если сборка не была отменена"
Поставьте в очередь сборку, вы должны увидеть результаты теста Mocha в вашей сборке VSO.
БОНУС! Вы также можете добавить покрытие кода для своего запуска Mocha с помощью nyc (ранее известного как Istanbul)
В верхней части шагов выше:
- Установите Стамбул локально в свой
package.json
- Запустите
npm install nyc--save-dev
- Запустите
- Измените ваши скрипты в
package.json
- Update
{ "scripts": { "test": "nyc --repoter=cobertura mocha" } }
- Update
- Изменить задачу "npm test"
- Выполнить пользовательский
test -- --reporter mocha-junit-reporter
командыtest -- --reporter mocha-junit-reporter
- Выполнить пользовательский
- Добавить задачу "Опубликовать результаты покрытия кода"
- Установите "Инструмент покрытия кода" на "Cobertura"
- Установите для "
$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
файла" значение$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
- Установите "Каталог отчетов" в
$(System.DefaultWorkingDirectory)/coverage/
- Установите флажок "Продолжить при ошибке"
- В разделе "Параметры управления"> "Запустить эту задачу" установите для него значение "Даже если предыдущая задача не удалась, если сборка не была отменена"
- Добавьте новую переменную сборки
NPM_CONFIG_COVERAGE
и установите для нее значениеtrue
Теперь вы получили результаты модульных тестов и покрытия кода в отчете о сборке.