在量angular器转轮中捕捉错误

有没有办法来捕捉protractor的跑步者直接抛出的具体错误? 例如,一个未捕获的exception是:

 WARNING - pattern /var/www/smoran/repo/app/partials/app/app.controller.e2e.js did not match any files. [launcher] Process exited with error code 1 /var/www/smoran/repo/node_modules/protractor/node_modules/q/q.js:126 throw e; ^ Error: Spec patterns did not match any files. at Runner.run (/var/www/smoran/repo/node_modules/protractor/lib/runner.js:249:11) at TaskRunner.run (/var/www/smoran/repo/node_modules/protractor/lib/taskRunner.js:123:19) at createNextTaskRunner (/var/www/smoran/repo/node_modules/protractor/lib/launcher.js:220:20) at /var/www/smoran/repo/node_modules/protractor/lib/launcher.js:243:7 at _fulfilled (/var/www/smoran/repo/node_modules/protractor/node_modules/q/q.js:797:54) at self.promiseDispatch.done (/var/www/smoran/repo/node_modules/protractor/node_modules/q/q.js:826:30) at Promise.promise.promiseDispatch (/var/www/smoran/repo/node_modules/protractor/node_modules/q/q.js:759:13) at /var/www/smoran/repo/node_modules/protractor/node_modules/q/q.js:573:44 at flush (/var/www/smoran/repo/node_modules/protractor/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13) 

protractor无法使用指定的匹配模式find任何文件或可能没有发现存在的文件可以通过茉莉花或摩卡parsing时,会引发此错误。

现在,我不在乎导致这个错误的情况。 我不关心量angular器是否可以用我的globbing模式find文件,如果我在意,我想抛出自己的错误,因为它的错误太冗长了,实际上是uncaught exceptions 。 不幸的是, protractor在我试图做到的每一个转弯处都让我tri me protractor 。 它似乎是在跑步者中抛出错误,然后在它的依赖中捕获它,然后如果它正在NodeJS (它是)下运行,则重新抛出它。

我正在使用child_process ,而且我正在使用child_processspawn来产生量angular器,因为所有的child_processprotractor插件似乎被列入黑名单或者build议不要使用。 我的代码在这里显示的时间太长了,但实质上是这样的:

 gulp.task('protractor', function() { return spawn('protractor', [ '--specs=' + notFoundTests otherArgs ], { stdio: 'inherit' }); }); 

我在我的PATH量angular器, notFoundTests是一个string,而不是一个数组。 我正在使用stdio: 'inherit'因为我仍然想看到所有的错误和输出,但我想find一种方法来过滤它。

不pipe我试图抓住什么,错误似乎都不是这样发出来的。 似乎它不是作为一个错误发射,所以spawn(...).on('error', function() {}); 不起作用。 围绕调用spawntry catch块也是行不通的。 甚至使用process.on('uncaughtException'); 虽然它似乎是一个未被捕获的例外,但它并没有抓住它。

我的问题是:如何捕捉protractor抛出的错误,但不能真正返回? protractor是否提供钩子等? 另外,它为什么抛出这个特定的错误? 这似乎是一个最终开发人员的错误,而不是protractor应该处理的东西。