Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 519
K-Yo Avatar asked Aug 27 '13 03:08

K-Yo


People also ask

What is matrix in Travis?

A build matrix is made up by several multiple jobs that run in parallel. This can be useful in many cases, but the two primary reasons to use a build matrix are: Reducing the overall build execution time. Running tests against different versions of runtimes or dependencies.

What is Travis Yaml?

travis. yml , which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.


2 Answers

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

like image 178
K-Yo Avatar answered Sep 22 '22 17:09

K-Yo


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', 
like image 37
Kim Miller Avatar answered Sep 21 '22 17:09

Kim Miller