Можно ли настроить travis для запуска тестов на нескольких языках?

У меня есть проект rails, и я запускаю тесты для своего теста JavaScript (Jasmine) через Карма

.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 как другой язык и установить карму на виртуальной машине сборки?


person K-Yo    schedule 27.08.2013    source источник
comment
К вашему сведению, github.com/travis-ci/travis-ci/issues/4090 означает, что они не поддержат его в ближайшее время.   -  person Jeff Hammond    schedule 01.06.2017


Ответы (3)


пока что невозможно иметь несколько языков в файле конфигурации travis. .

С другой стороны, все среды запускают node.js. Следующий сценарий делает свое дело:

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

person K-Yo    schedule 27.08.2013
comment
Мой .travis.yml с конфигурацией для запуска как Go, так и Javascript тесты. - person OrangeTux; 13.11.2014
comment
Вот как я запускаю установку обновленного nodejs вместе с любым другим языком. - person fiatjaf; 10.12.2015

Ответ 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"
},

Наконец, я узнал, что Трэвис чувствителен к регистру, поэтому:

'bower_components/jquery/dist/jquery.min.js',

в моем karma.conf.js должно быть:

'bower_components/jQuery/dist/jquery.min.js',
person Kim Miller    schedule 24.09.2014

Если для ключа language в .travis.yml установлено значение node, Трэвис запустит nvm install 0.12 в начале сборки. Точно так же для проекта Ruby Трэвис запустит rvm use 2.2.2 --install --binary --fuzzy в начале сборки.

Мне удалось запустить обе команды в сборке Bash

person Vinson Chuong    schedule 08.08.2015