Можно ли настроить travis для запуска тестов для нескольких языков?
У меня есть проект rails и выполняю тесты для моего теста JavaScript (Jasmine) через Karma
.travis.yml файл
language: ruby
rvm:
- 2.0.0
script:
- RAILS_ENV=test bundle exec rake --trace db:migrate test
- karma start --single-run --browsers PhantomJS test/karma/config/unit.js
Трэвис не говорит, что не находит карму. есть ли способ определить node_js как другой язык и установить карму на VM сборки?
Ответы
Ответ 1
пока не возможно иметь несколько языков в файле конфигурации travis.
С другой стороны, все среды запускают node.js. Следующий script делает трюк:
language: ruby
rvm:
- 2.0.0
before_script:
- npm install karma
script:
- RAILS_ENV=test bundle exec rake --trace db:migrate test
- karma start --single-run --browsers PhantomJS test/karma/config/unit.js
Помогите найти старый поток в группе google
Ответ 2
K-Yo ответ заставил меня двигаться в правильном направлении, но далеко не успел. Вот что мне нужно:
Сначала в моем .travis.yml:
language: ruby
rvm:
- 2.1.1
before_script:
- psql -c 'create database spokenvote_test;' -U postgres
- cp config/database.travis.yml config/database.yml
- rake db:test_prep
- npm install karma
- npm install karma-jasmine
- npm install karma-coverage
- npm install karma-phantomjs-launcher
- npm install karma-coffee-preprocessor
script:
- bundle exec rspec spec # basic for ruby
- node_modules/karma/bin/karma start config/karma.conf.js --single-run --browsers PhantomJS
Затем я также поместил этот код в свой пакет package.json, хотя я не уверен, что он нужен:
"devDependencies": {
"karma": "~0.12",
"karma-jasmine": "~0.2",
"karma-coverage": "~0.2.6",
"karma-phantomjs-launcher": "~0.1.4",
"karma-coffee-preprocessor": "~0.2.1"
},
Наконец, я узнал, что Travis чувствителен к регистру, поэтому:
'bower_components/jquery/dist/jquery.min.js',
в моем файле karma.conf.js должно быть:
'bower_components/jquery/dist/jquery.min.js',
Ответ 3
Если для клавиши language
в .travis.yml
установлено значение node
, Travis будет запускать nvm install 0.12
в начале сборки. Аналогично, для проекта Ruby Travis будет запускать rvm use 2.2.2 --install --binary --fuzzy
в начале сборки.
У меня был успех, выполняющий обе команды в Bash build