Karma测试在监视模式下传递,但是当--single-run标志通过时失败

Nat*_*dly 5 javascript node.js browserify karma-runner karma-mocha

我正在尝试更新Node.js库以在浏览器中工作.我有大量的测试都在Node.js中按预期工作,但是当我尝试在浏览器中运行它们时(通过Karma和Browserify),它给了我很多问题.我遇到的一个特殊问题是当业力处于"监视"模式时某些文件将通过,但在"单一运行"模式下失败:

观看模式:

~/node-sdk (browser) $ karma start
11 07 2016 16:55:59.122:INFO [framework.browserify]: registering rebuild (autoWatch=true)
11 07 2016 16:56:11.595:INFO [framework.browserify]: 9423226 bytes written (11.72 seconds)
11 07 2016 16:56:11.711:INFO [framework.browserify]: bundle built
11 07 2016 16:56:11.732:WARN [karma]: No captured browser, open http://localhost:9876/
11 07 2016 16:56:11.741:INFO [karma]: Karma v1.1.1 server started at http://localhost:9876/
11 07 2016 16:56:11.741:INFO [launcher]: Launching browsers Chrome, Firefox with unlimited concurrency
11 07 2016 16:56:11.748:INFO [launcher]: Starting browser Chrome
11 07 2016 16:56:11.758:INFO [launcher]: Starting browser Firefox
11 07 2016 16:56:13.959:INFO [Chrome 51.0.2704 (Mac OS X 10.11.5)]: Connected on socket /#8p3Hx9wFfm_gMYyEAAAA with id 2615838
11 07 2016 16:56:15.449:INFO [Firefox 47.0.0 (Mac OS X 10.11.0)]: Connected on socket /#f6SIfND_MvqYDOzbAAAB with id 65572400
Firefox 47.0.0 (Mac OS X 10.11.0): Executed 2 of 2 SUCCESS (0.047 secs / 0.01 secs)
Chrome 51.0.2704 (Mac OS X 10.11.5): Executed 2 of 2 SUCCESS (0.03 secs / 0.017 secs)
TOTAL: 4 SUCCESS
Run Code Online (Sandbox Code Playgroud)

单次运行模式:

~/node-sdk (browser) $ karma start --single-run
11 07 2016 16:55:36.294:INFO [framework.browserify]: bundle built
11 07 2016 16:55:36.323:INFO [karma]: Karma v1.1.1 server started at http://localhost:9876/
11 07 2016 16:55:36.325:INFO [launcher]: Launching browsers Chrome, Firefox with unlimited concurrency
11 07 2016 16:55:36.334:INFO [launcher]: Starting browser Chrome
11 07 2016 16:55:36.345:INFO [launcher]: Starting browser Firefox
11 07 2016 16:55:38.562:INFO [Chrome 51.0.2704 (Mac OS X 10.11.5)]: Connected on socket /#PwrOhxXF9cdzx-0UAAAA with id 34820387
Chrome 51.0.2704 (Mac OS X 10.11.5) ERROR
  Uncaught TypeError: self.req.on is not a function
  at /var/folders/95/_6btw8d94sq2b91k8j794zpm0000gn/T/node_modules/request/request.js:798:0 <- /var/folders/95/_6btw8d94sq2b91k8j794zpm0000gn/T/05a75ef7d31df884a8d5b5e1cec33ffd.browserify:53193
Chrome 51.0.2704 (Mac OS X 10.11.5): Executed 2 of 2 ERROR (0.043 secs / 0.025 secs)
11 07 2016 16:55:40.672:INFO [Firefox 47.0.0 (Mac OS X 10.11.0)]: Connected on socket /Chrome 51.0.2704 (Mac OS X 10.11.5): Executed 2 of 2 ERROR (0.043 secs / 0.025 secs)
Firefox 47.0.0 (Mac OS X 10.11.0): Executed 2 of 2 SUCCESS (0.084 secs / 0.012 secs)
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么原因引起的?

这是我的完整代码:https://github.com/watson-developer-cloud/node-sdk/tree/2b31b5d74f5e471729bf45dab70ef5428f9ab711

这是它当前正在运行的一个测试文件(尽管其他几个似乎也有相同的错误):https://github.com/watson-developer-cloud/node-sdk/blob/2b31b5d74f5e471729bf45dab70ef5428f9ab711/test/test.alchemy_data_news.v1. JS

这是它报告错误的特定行(我怀疑这是问题的实际来源,但它是我从日志中获得的所有内容):https://github.com/request/request/blob/v2. 72.0/request.js#L798

更新:似乎需要触发多个浏览器.如果我只在firefox或chrome中运行测试,它们也会以单次运行模式传递.但仍然不确定根本原因是什么.

更新2:使用单个浏览器运行更好,我的一些测试通过,但其他测试文件给我这样的错误:

12 07 2016 10:03:12.702:ERROR [framework.browserify]: TypeError: Cannot read property 'apply' of undefined while parsing file: /Users/nfriedly/node-sdk/test/test.visual_recognition.v3.js

那是什么意思?如果我手动浏览文件,它工作正常,就像在node.js中运行它(使用mocha).我认为它可能只发生在使用fs.read*(via brfs)的文件中.