45

我有一个 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

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

4

3 回答 3

52

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 组中的旧线程上找到的帮助

于 2013-08-27T04:36:06.603 回答
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

然后我还将这段代码放在了我的 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',
于 2014-09-24T17:20:29.223 回答
2

languagekey in.travis.yml设置为 时node,Travis 将nvm install 0.12在构建开始时运行。同样,对于 Ruby 项目,Travis 将rvm use 2.2.2 --install --binary --fuzzy在构建开始时运行。

我已经成功地在Bash 构建中运行了这两个命令

于 2015-08-08T07:14:29.300 回答