2017-10-07 2 views
0

Je suis en train de mettre en place un Angular 4 SPA avec des tests automatiques dans Jenkins CI. Le SPA fait partie d'un projet plus vaste, géré par Maven, de sorte que la construction est également gérée par Maven. Jusqu'à présent, j'ai:Karma ne fonctionne pas dans Jenkins CI, ne peut pas trouver le module 'karma-jasmine'

  1. installé le plugin NodeJS sur Jenkins, en utilisant l'installation à partir nodejs.org avec la version 8.6.0
  2. "Configuré packages Global NPM installer" = « jasmin PhantomJS-préconstruits karma-cli karma-jasmin karma-phantomjs-lanceur karma-junit-reporter karma-couverture "
  3. Ajouté le" maven-karma-plugin "dans pom.xml avec les navigateurs = PhantomJS/singleRun = true/reporters = dots, junit
  4. Activé "Fournir le noeud & npm bin/dossier à PATH" dans la configuration de travail de Jenkins

Le processus de construction démarre très bien, mais finalement je reçois:

[INFO] --- maven-karma-plugin:1.6:start (default) @ webclient --- 
[INFO] Executing Karma Test Suite ... 
/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/bin/karma start /var/lib/jenkins/workspace/funnel_build/webclient/karma.conf.js --browsers PhantomJS --reporters dots,junit --single-run 
07 10 2017 17:07:52.801:ERROR [config]: Error in config file! 
{ Error: Cannot find module 'karma-jasmine' 
    at Function.Module._resolveFilename (module.js:527:15) 
    at Function.Module._load (module.js:476:23) 
    at Module.require (module.js:568:17) 
    at require (internal/module.js:11:18) 
    at module.exports (/var/lib/jenkins/workspace/funnel_build/webclient/karma.conf.js:9:7) 
    at Object.parseConfig (/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/karma/lib/config.js:410:5) 

Le NPM installer au début des journaux de construction:

$ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/bin/npm install -g karma-cli phantomjs-prebuilt jasmine-core karma-jasmine karma-phantomjs-launcher karma-junit-reporter karma-coverage 
/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/bin/karma -> /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/karma-cli/bin/karma 
/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/bin/phantomjs -> /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/phantomjs-prebuilt/bin/phantomjs 

> [email protected] install /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/phantomjs-prebuilt 
> node install.js 

Considering PhantomJS found at /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/bin/phantomjs 
Looks like an `npm install -g` 
Could not link global install, skipping... 
Download already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 
Verified checksum of previously downloaded file 
Extracting tar contents (via spawned process) 
Removing /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/phantomjs-prebuilt/lib/phantom 
Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1507388835905/phantomjs-2.1.1-linux-x86_64 -> /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/phantomjs-prebuilt/lib/phantom 
Writing location.js file 
Done. Phantomjs binary available at /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node.js_8.6.0/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs 
npm WARN [email protected] requires a peer of [email protected]* but none was installed. 
npm WARN [email protected] requires a peer of [email protected]>=0.9 but none was installed. 
npm WARN [email protected] requires a peer of [email protected]>=0.9 but none was installed. 

+ [email protected] 
+ [email protected] 
+ [email protected] 
+ [email protected] 
+ [email protected] 
+ [email protected] 
+ [email protected] 
updated 7 packages in 10.553s 

(La raison pour laquelle le paquet « karma 'est actuellement pas sur la liste, c'est que j'ai lu quelque part que le karma-cli devrait être utilisé à la place du karma. L'ajout du paquet 'karma' ne change rien cependant.)

Une idée pour laquelle "Impossible de trouver le module 'karma-jasmine'" apparaît? Dans (2) vous verrez que le paquet karma-jasmine est listé, je le trouve sur le serveur, mais il n'est toujours pas trouvé par le plugin NodeJS.

Merci, Simon

Répondre