Is it possible to set up travis to run tests for several languages?

I have a rails project and am running tests for my JavaScript test (Jasmine) through Karma

.travis.yml file

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

Travis fails saying it does not find karma. is there a way to define node_js as another language and install karma on the build VM?


It is not possible yet to have several languages on travis configuration file.

On the other hand, all environments run node.js. The following script does the trick:

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

Help found on an old thread in a google group


K-Yo's answer got me moving in the right direction, but far short of success. Here is what I needed:

First in my .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

Then I also placed this code in my package.json, though I'm not sure if it was needed:

"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"
},

Finally, I learned that Travis is case sensitive, so:

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

in my karma.conf.js needed to be:

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