如何从打印对象中停止Node.js jasmine测试?

时间:2016-02-21 07:43:32

标签: node.js jasmine

我的测试有很多膨胀的输出。而不是像我之前看到的那样简单地打印测试结果:

Finished in 0.052 seconds
2 tests, 5 assertions, 0 failures, 0 skipped

我现在看到测试期间正在使用的对象的内容。我认为这与我的模块是隔离的,但鉴于这是我第一次使用node,我并不乐观。

重新创建问题

$ git clone https://github.com/spencerdcarlson/javaparser.git
$ cd javaparser/
$ npm install --only=dev
$ npm test

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

看起来你的代码直接打印到stdout,所以从karma / jasmine / node方面来看它实际上是无法帮助的。

你可以通过一个过滤程序来管道输出,然后打印出你想看到的东西,但这是很多工作。

为什么不修改代码让你在选项中为stdout指定一个流(或null)(我在你的parse()函数中看到你已经有了options参数。

JavaParser.parse = function parse(file, options, cb) {
  ...
  const rl = readline.createInterface({
     input: stream,
     output: (options.stdout === undefined)? process.stdout : options.stdout;
  });
 ...
}

然后你可以在运行测试时传递一个虚拟标准输出。

免责声明:我还没有研究过你的代码来检查它是否是打印到stdout的地方,这只是为了给你一个想法。我也不确定传递null是否适用于节点应用程序。在Linux上,您可以使用 / dev / null