是否可以设置travis来运行多种语言的测试?

K-Y*_*-Yo 44 ruby-on-rails travis-ci karma-runner

我有一个rails项目,我正在通过Karma为我的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
Run Code Online (Sandbox Code Playgroud)

特拉维斯没有说它找不到业力.有没有办法将node_js定义为另一种语言并在构建VM上安装karma?

K-Y*_*-Yo 52

这是不可能的但有几种语言上特拉维斯配置文件.

在另一方面,所有的环境中运行的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
Run Code Online (Sandbox Code Playgroud)

在谷歌群组中的旧帖子上找到帮助

  • 这是[我如何运行**更新的nodejs**](http://entulho.fiatjaf.alhur.es/guias/how-to-use-node-along-with-other-language-on-travis-ci/ )安装以及任何其他语言. (2认同)

Kim*_*ler 5

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
Run Code Online (Sandbox Code Playgroud)

然后我也把这个代码放在我的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"
},
Run Code Online (Sandbox Code Playgroud)

最后,我了解到特拉维斯区分大小写,因此:

'bower_components/jquery/dist/jquery.min.js',
Run Code Online (Sandbox Code Playgroud)

在我的karma.conf.js需要是:

'bower_components/jQuery/dist/jquery.min.js',
Run Code Online (Sandbox Code Playgroud)