首页 文章

Karma没有在Jenkins CI中运行,找不到模块'karma-jasmine'

提问于
浏览
0

我正在Jenkins CI Build 一个自动测试的Angular 4 SPA . SPA是Maven管理的大型项目的一部分,因此构建也是Maven管理的 . 到目前为止,我已经:

  • 使用版本8.6.0的nodejs.org安装,在Jenkins上安装了NodeJS插件

  • 已配置"Global npm packages to install" = "karma-cli phantomjs-prebuilt jasmine-core karma-jasmine karma-phantomjs-launcher karma-junit-reporter karma-coverage"

  • 在pom.xml中添加"maven-karma-plugin",浏览器= PhantomJS / singleRun = true / reporter = dots,junit

  • 在Jenkins作业配置上启用了"Provide Node & npm bin/ folder to PATH"

构建过程启动相当正常,但最终我得到:

[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)

在构建日志的最开始安装npm:

$ /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

> phantomjs-prebuilt@2.1.15 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 karma-jasmine@1.1.0 requires a peer of karma@* but none was installed.
npm WARN karma-junit-reporter@1.2.0 requires a peer of karma@>=0.9 but none was installed.
npm WARN karma-phantomjs-launcher@1.0.4 requires a peer of karma@>=0.9 but none was installed.

+ karma-phantomjs-launcher@1.0.4
+ karma-coverage@1.1.1
+ karma-jasmine@1.1.0
+ karma-cli@1.0.1
+ karma-junit-reporter@1.2.0
+ jasmine-core@2.8.0
+ phantomjs-prebuilt@2.1.15
updated 7 packages in 10.553s

(包裹'业力'目前不在列表中的原因是我在某处读到应该用karma-cli代替业力 . 但是,添加'业力'包不会改变任何东西 . )

知道为什么“找不到模块'karma-jasmine'”会出现吗?在(2)中你会看到karma-jasmine包被列出,我在服务器上找到它,但是NodeJS插件找不到它 .

谢谢,西蒙

1 回答

相关问题