web-dev-qa-db-ja.com

複数の言語のテストを実行するようにトラビスを設定することは可能ですか?

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にカルマをインストールする方法はありますか?

44
K-Yo

Travis構成ファイルにいくつかの言語を含めることは まだ不可能 です。

一方、すべての環境 run 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グループの古いスレッド にあります

52
K-Yo

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',
5
Kim Miller

.travis.ymllanguageキーがnodeに設定されている場合、Travisはビルドの開始時にnvm install 0.12を実行します。同様に、Rubyプロジェクトの場合、Travisはビルドの開始時にrvm use 2.2.2 --install --binary --fuzzyを実行します。

私は Bashビルド で両方のコマンドを実行することに成功しました

2
Vinson Chuong