问题标签 [istanbul]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 多个文件的代码覆盖率
我在 node.js 中有一个使用 mocha 框架的应用程序。我有两个 javascript 源文件,我想对其进行代码覆盖(即 a.js 和 b.js)。我为此目的使用伊斯坦布尔。
这里的问题是我没有得到如何对多个文件进行代码覆盖。我使用以下格式:
但不幸的是,这两个命令都给出了相同的代码覆盖率,我认为它只采用 a.js 代码。是否有任何解决方案可以找到多个文件的代码覆盖率?
node.js - 如何让伊斯坦布尔为我的所有源代码生成覆盖率?
目前,Istanbul 只为我的测试中使用的文件生成覆盖范围,这没问题,但似乎在某种程度上违背了覆盖范围的目的。
我没有伊斯坦布尔配置,并通过npm test
以下脚本字符串调用它:
$ istanbul cover _mocha -- -R dot --check-leaks --recursive test/
有没有办法为我的所有源代码生成覆盖范围?
html - AngularJS html 模板的代码覆盖率
我们在业力测试中使用伊斯坦布尔进行代码覆盖。这对于跟踪我们在 JavaScript 中的单元测试的代码覆盖率非常有用。但是,这不会跟踪我们 HTML 模板中的代码覆盖率。
我们的模板中几乎没有逻辑,但我们仍然想要跟踪并确保我们在测试中正确覆盖了复杂性。确保正确覆盖所有 HTML 模板的最佳实践是什么?在我们的特殊情况下,我们使用 ng-if 和 ng-switch。我们希望确保正确覆盖所有分支。
javascript - 私有变量的 Jasmine 测试用例
我正在使用 jasmine 2.0 来测试 javascript 函数。我有下面写的主干代码。
我用 jasmin 编写了测试用例,如下所示:
如何在 div1Clicked 函数中为 onComplete 编写测试用例?
intern - 在实习生中测试的代码可以预先测试吗?
我正在通过实习生进行浏览器单元测试。因为我们喜欢用 CommonJS 格式编写,所以我将代码浏览到一个模块中,然后可以由 Dojo AMD 加载器加载。但是,代码覆盖率报告也会报告捆绑代码。
我看到的一种选择是预先编写代码,并告诉伊斯坦布尔忽略某些要求语句。在尝试之后,实习生似乎仍在再次检测代码。
如果我事先已经这样做了,我可以告诉实习生不要检测代码,但仍然以某种方式收集覆盖率数据吗?或者还有其他选择吗?
karma-runner - 通过 Karma 公共 API 运行时如何包含 .istanbul.yml
我基本上从 Karma 开始node wrapper.js
。该包装器设置包括调用karma-coverage
、启动 Karma的配置require('karma').runner.run
。karma-coverage
呼唤伊斯坦布尔。(呸!)
我想用一个.istanbul.yml
文件配置伊斯坦布尔,主要是因为我想更改“报告水印”。这是我的文件的样子。
从我所见,这看起来是正确的。但是..它不起作用。我认为问题是伊斯坦布尔不知道当前的工作目录,或者需要通过karma-coverage
.
如果它有帮助,我的业力config.basePath
很简单''
。
我试图找到对这个特定问题的讨论。可悲的是,这个问题与我的问题最接近,但它是关于“如何命名文件”的常见问题解答条目。这是Grunt 中讨论此问题的问题/答案,但我无法提取任何有用的东西。
我还浏览了 github 上的 karma-runner 问题,包括开放的和封闭的。查看 karma-runner 的来源并将其与伊斯坦布尔的这个问题结合起来,我认为这是不可能的,因为这条线。我对么?
javascript - 伊斯坦布尔/摩卡文件未显示
所以我有这个节点脚本,我用它来用伊斯坦布尔运行我的 mocha 测试以进行代码覆盖:
https://gist.github.com/ryanzec/150e2b9239df723c0120
在第 18 行,我获得了代码覆盖应包含的文件列表,因此在第 34 和 49 行,我将伊斯坦布尔覆盖代码限制为仅与项目相关的文件。
我看到的问题是,如果在第 18 行检索到的文件之一从未被调用,它现在会显示在报告中。现在这不应该发生,但是如果有人创建了一个新文件但忘记为它编写测试(再次,不应该发生),我希望该文件以 0% 的覆盖率统计显示。
有没有办法让那些从未被调用的文件在报告中显示为 0%,这样我就可以确定没有文件从测试中完全遗漏?
dojo - 伊斯坦布尔为在浏览器中运行的实习生测试生成的代码覆盖率分析?
我知道有一篇现有的帖子询问是否可以为使用 Intern 编写和运行的测试生成代码覆盖率分析的 HTML 报告,并且得到了回答:
但是,该帖子没有提及 OP 运行在哪种类型的环境中;即,测试是否在 Node.js 客户端中运行?我问是因为我在浏览器中使用 Intern 框架运行我的单元测试 [编辑:调用测试类似于http://path/to/intern-tutorial/node_modules/intern/client.html?config=tests/intern]。这里的文章:
https://github.com/theintern/intern/wiki/Using-and-Writing-Reporters#custom-reporters
概述 HTML 是唯一可用于浏览器平台的报告器;LCOV 和 LCOVHTML 不是。但这完全改变了吗?这个有限的浏览器记者数组不是很方便,我希望利用 Intern 内置的伊斯坦布尔,而不是尝试插入另一个代码覆盖率分析工具(或破解我自己的东西 :( )。
jasmine - 仅茉莉花 + 伊斯坦布尔
在运行我的 Jasmine specrunner.html 时,我想直接在浏览器中获得代码覆盖率。我在 Jasmine+Istanbul 中找到的所有示例也使用 Grunt/Gulp/Karma 或其他一些命令行工具。我不想要那个。
有没有办法让 Jasmine + Istanbul 的浏览器中显示结果,或者这里必须使用 cmd 测试运行器?
node.js - Coveralls 显示 node.js 项目的覆盖率为 0%
我似乎无法让 Coveralls 显示我的 node.js 项目的覆盖率。这是我的设置:
- github上的node.js项目
- 用摩卡咖啡测试
- 伊斯坦布尔的报道
- CI 的 travis-ci
- 使用 node-coveralls 将覆盖数据发送到工作服
我创建了以下 .travis.yml 文件:
并在我的 package.json 文件中有以下脚本:
Coveralls 识别所有受影响的文件(index.js 和我的 lib 文件夹),但它不显示任何文件的任何覆盖范围。
这是工作服上的构建外观:https ://coveralls.io/builds/1851378
如果我在本地运行它,这是伊斯坦布尔的输出(只是为了证明,实际上有一些测试覆盖率,生成的 lcov.info 文件看起来也很好):
关于我可能缺少什么以正确显示工作服的覆盖范围的任何建议?
顺便说一句,我还尝试使用存储库令牌和节点工作服将覆盖结果上传到本地工作服。结果是一样的...