运行 angular2 在 linux 上通过 jenkins 测试时出现 Karma 错误
Karma error when running angular2 tests via jenkins on linux
当 运行使用 karma 和 jenkins 对我的 angular2 单元进行测试时,我看到了以下错误。
我的测试 运行 当我 运行 在我的本地机器 (windows) 上测试时很好,但是当 运行 在 [=25= 上通过 jenkins 进行测试时] 我收到以下错误。
Missing error handler on `socket`.
TypeError: (msg || "").replace is not a function
at /home/hudson/.hudson/jobs/workspace/pjt/node_modules/karma/lib/reporter.js:45:23
我的测试从未开始,不知道是什么原因造成的。看了karma源码,想不通为什么会出问题
return function (msg, indentation) {
// remove domain and timestamp from source files
// and resolve base path / absolute path urls into absolute path
msg = (msg || '').replace(URL_REGEXP, function (_, prefix, path, __, ___, line, ____, column) {
if (prefix === 'base') {
path = basePath + path
}
// more code here ...
我正在使用 PhantomJS 作为测试 运行ner 以防它在本地和 jenkins 上都相关。
如有任何关于可能是什么问题的指示,我将不胜感激。
回答我自己的问题。
原来问题出在我的业力文件部分。
{ pattern: 'node_modules/rxjs/bundles/rx.js', included: true, watched: true }
rx 模块的文件名为 node_modules/rxjs/bundles/Rx.js
由于 linux 区分大小写,这就是它在 windows 开发环境中工作而在 linux 构建服务器上失败的原因。
rx.js 文件的 404 消息出现在日志中,但我错过了许多其他调试日志记录。
经验教训:)
对于 https://github.com/juliemr/ng2-test-seed 之后的任何人,在我的例子中,此错误是由于这行代码引起的:
https://github.com/juliemr/ng2-test-seed/blob/master/karma-test-shim.js#L31.
更新为
System.import('angular2/src/platform/browser/browser_adapter')
将纠正问题。
希望对大家有帮助。
当 运行使用 karma 和 jenkins 对我的 angular2 单元进行测试时,我看到了以下错误。
我的测试 运行 当我 运行 在我的本地机器 (windows) 上测试时很好,但是当 运行 在 [=25= 上通过 jenkins 进行测试时] 我收到以下错误。
Missing error handler on `socket`.
TypeError: (msg || "").replace is not a function
at /home/hudson/.hudson/jobs/workspace/pjt/node_modules/karma/lib/reporter.js:45:23
我的测试从未开始,不知道是什么原因造成的。看了karma源码,想不通为什么会出问题
return function (msg, indentation) {
// remove domain and timestamp from source files
// and resolve base path / absolute path urls into absolute path
msg = (msg || '').replace(URL_REGEXP, function (_, prefix, path, __, ___, line, ____, column) {
if (prefix === 'base') {
path = basePath + path
}
// more code here ...
我正在使用 PhantomJS 作为测试 运行ner 以防它在本地和 jenkins 上都相关。
如有任何关于可能是什么问题的指示,我将不胜感激。
回答我自己的问题。
原来问题出在我的业力文件部分。
{ pattern: 'node_modules/rxjs/bundles/rx.js', included: true, watched: true }
rx 模块的文件名为 node_modules/rxjs/bundles/Rx.js
由于 linux 区分大小写,这就是它在 windows 开发环境中工作而在 linux 构建服务器上失败的原因。
rx.js 文件的 404 消息出现在日志中,但我错过了许多其他调试日志记录。
经验教训:)
对于 https://github.com/juliemr/ng2-test-seed 之后的任何人,在我的例子中,此错误是由于这行代码引起的: https://github.com/juliemr/ng2-test-seed/blob/master/karma-test-shim.js#L31.
更新为
System.import('angular2/src/platform/browser/browser_adapter')
将纠正问题。
希望对大家有帮助。