我在node.js中使用mocha框架有一个应用程序。 我有两个javascript源文件,我想采取代码覆盖(即a.js和b.js)。 我为此目的使用伊斯坦布尔。
这里的问题是我没有得到如何为多个文件采取代码覆盖。 我使用以下格式:
istanbul cover node_modules/mocha/bin/_mocha a.js
istanbul cover node_modules/mocha/bin/_mocha a.js b.js
但不幸的是,这两个命令都给出了相同的代码覆盖率,我认为它只采用a.js代码。有没有找到多个文件的代码覆盖率的解决方案?
答案 0 :(得分:2)
这里的问题是如何解析伊斯坦布尔的论点。
假设mocha a.js b.js
按预期工作,那么这应该是等效的Istanbul命令:
istanbul cover node_modules/mocha/bin/_mocha -- a.js b.js
伊斯坦布尔将在--
拆分参数,并将右侧的参数传递给左侧的节点脚本。一旦工作正常,伊斯坦布尔的报道报告将正常工作。
如果可能的话,最重要的是给mocha一个目录而不是显式文件名。这样,如果文件名发生变化,则不必更改此代码。
您还可以使用Intern.js进行测试,从而更轻松地进行测试,实际上使用伊斯坦布尔并在很少设置的情况下自动处理所有代码。