@Leshrac

Как правильно настроить выполнение юнит-тестов (jasmine js) на travis?

Занялся расширением для хрома для личных целей, но подумал, что, может, кому еще окажется полезным. Решил озадачиться организацией Continuous Integration. Стандартный набор - GitHub, Travis. Для непосредственно тестов выбрал jasmine.

На практике с CI столкнулся впервые (как и с расширениями для хрома и тестированием js).
Итак, мои шаги:
  1. создал .travis.yml
  2. в нем - ставлю bower (через него тяну нужные пакеты, например, jasmine)
  3. в нем же в загруженную директорию с jasmine кладу свой SpecRunner.html, где указаны мои исходники и спеки
  4. загружаю SpecRunner.html в phantomjs
.travis.yml:
language: node_js
node_js:
  - "0.10"
install:
  - npm install -g bower
  - bower install
  - cd $TRAVIS_BUILD_DIR
script:
  - mv -f ./test/SpecRunner.html ./vendor/components-jasmine
  - phantomjs ./test/runTests.js


runTests.js:
var page = require('webpage').create();
page.open('../vendor/components-jasmine/SpecRunner.html', function(){
	phantom.exit();
});


Тесты должны были сфэйлиться, но статус на трэвисе - passed. Как правильно настроить выполнение тестов?
  • Вопрос задан
  • 3009 просмотров
Решения вопроса 1
@Leshrac Автор вопроса
Трэвис в данном случае ведет себя корректно - в phantomjs выполняет runTests.js, соответственно возвращает 0 и билд помечается как passed.
Результаты теста после выполнения появляются на самой загруженной странице SpecRunner.html. Следовательно в фантоме надо печатать ее содержимое, чтобы увидеть результаты.
Также в качестве url я использую локальный html, а в фантоме в таком случае путь должен быть указан соответственно:
file:///c:/path/to/the%20file.txt #win
file:///etc/fstab #unix


Ну а чтобы получить в итоге на трэвисе passed или failed, нужно либо парсить полученную из фантома страницу в after_script в .travis.yml, либо воспользоваться самим жасмином (хотя насчет этого не уверен) для получения результата, и в зависимости от этого из фантома трэвису возвращать 0, если все тесты пройдены, или другое значение, если что-то сфэйлилось.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы