J’ai un projet de rails et je teste mon test JavaScript ( Jasmine ) via Karma
Fichier .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
Travis échoue en disant qu’il ne trouve pas de karma. existe-t-il un moyen de définir node_js comme un autre langage et d’installer le karma sur la machine virtuelle de génération?
Il n’est pas encore possible d’avoir plusieurs langues sur le fichier de configuration travis.
Par ailleurs, tous les environnements exécutent node.js. Le script suivant fait l’affaire:
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
Aide trouvée sur un ancien thread dans un groupe Google
La réponse de K-Yo m’a fait avancer dans la bonne direction, mais loin d’être réussie. Voici ce qu’il me fallait:
D’abord dans mon .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-jasminee - 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
Ensuite, j’ai également placé ce code dans mon package.json, même si je ne suis pas sûr qu’il soit nécessaire:
"devDependencies": { "karma": "~0.12", "karma-jasminee": "~0.2", "karma-coverage": "~0.2.6", "karma-phantomjs-launcher": "~0.1.4", "karma-coffee-preprocessor": "~0.2.1" },
Finalement, j’ai appris que Travis est sensible à la casse, donc:
'bower_components/jquery/dist/jquery.min.js',
dans mon karma.conf.js devait être:
'bower_components/jQuery/dist/jquery.min.js',
Lorsque la clé de language
de .travis.yml
est définie sur node
, Travis lance nvm install 0.12
au début de la génération. De même, pour un projet Ruby, Travis lancera rvm use 2.2.2 --install --binary --fuzzy
au début de la construction.
J’ai réussi à exécuter les deux commandes dans une construction Bash