我们想要测量 Angular 8 应用程序代码覆盖率。我们有一个用 selenium java 编写的 e2e 测试用例,它加载部署在浏览器中另一台机器上的 Angular 应用程序,并运行一些 e2e 测试用例集。问题是我如何测量 Angular 应用程序 javascript 代码覆盖率。
在高层,我可以想到一些使用 istanbul 来检测我的 Angular JavaScript 代码的机制。Istanbul 将通过在浏览器中加载应用程序来记录 selenium java 代码执行 e2e 测试用例时的代码覆盖率。
寻找详细步骤我如何做同样的事情。
我不能用伊斯坦布尔运行我的摩卡测试生成一份cobertura报告.
istanbul report cobertura cover _mocha test
Run Code Online (Sandbox Code Playgroud)
cobertura-coverage.xml中的报告为空.
请注意,如果我运行没有报告选项(istanbul cover _mocha test)一切正常,我可以在控制台中看到覆盖率摘要.
我有什么想法我做错了吗?
我刚刚将istanbul测试覆盖率模块添加到我的 node.js 应用程序中,但是当我运行时(从命令提示符):
> instanbul cover myTests.js
Run Code Online (Sandbox Code Playgroud)
如文档中所述,我得到:
'istanbul' is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)
我在 Windows 7 下。 npm 安装没有返回错误。我在文档中没有看到有关额外安装步骤的内容。
我错过了什么?
我想istanbul将从客户端获取的 JSON 格式的覆盖率报告文件转换为 html 格式。目前我正在使用remap-istanbul这个,但实际上那个特定的工具旨在为最初用不同语言(如打字稿)编写的代码重新映射覆盖率数据。
所以我想是否有更方便的方法来做同样的事情
我有一个节点应用程序,其中包含单独的姐妹文件夹以及用于应用程序代码和测试的随附 package.json 文件。
Project
|
|-----Application
|-----app.js
|-----package.json
|-----Tests
|
|-------test.js
|-------package.json (nyc added here)
Run Code Online (Sandbox Code Playgroud)
nyc 作为依赖项(与 mocha 一起)包含在测试文件夹中。它无法显示应用程序文件夹中文件的覆盖范围。我尝试通过在 nyc 配置中包含“../Application/**/*.js”来显式包含应用程序文件,但这似乎不起作用。
有任何想法吗?
这就是我的项目设置方式:
project/
assets/
js/
app.js
services.js
directives.js
controllers/
FooCtrl.js
BarCtrl.js
css/
images/
test/
unit/
controllers/
controllerSpec.js
Run Code Online (Sandbox Code Playgroud)
我正在努力将所有文件添加js/到karma-coverage的preProcessor指令中.
这样做
preprocessors: {
'**/assets/js/*.js': ['coverage'],
},
Run Code Online (Sandbox Code Playgroud)
仅为文件直接生成覆盖率报告,assets/js/但不为其下的文件生成assets/js/controllers/.
指定单个控制器:
preprocessors: {
'**/assets/js/controllers/FooCtrl.js': ['coverage'],
},
Run Code Online (Sandbox Code Playgroud)
只是说'没有要显示的数据'.
最后,只是做一个通配符:
preprocessors: {
'**/*.js': ['coverage'],
},
Run Code Online (Sandbox Code Playgroud)
直接下的所有文件显示的数据assets/js/,test/unit/controllers/ test/lib/等等,但它仍然拒绝显示任何覆盖数据assets/js/controllers/.
目前我正在使用这些工具来运行我的测试,代码覆盖率和文档:
单元测试:
代码覆盖范围:
文档:
因为我正在尝试为前端和后端做所有模块化工作,我们有多个bower组件和nuget包,当然每个组件运行不同类型的测试和文档.
现在我想做的是拥有一个专门的网站,它可以获取所有的测试结果和文档,并有一个专门的网站,所有开发人员等都可以将它作为参考点.
有没有可以帮助我实现它的插件?
如果没有,你有什么想法我可以从哪里开始,因为我尝试谷歌搜索,但没有运气.
我试图从节点运行我的摩卡测试.最终目标是通过istanbul/blanket添加代码覆盖,并生成一个lcov文件,用于输入声纳以进行代码覆盖.
这是一个示例项目,我正在尝试 https://github.com/rajarshigoswami/Todos
摩卡测试在 https://github.com/rajarshigoswami/Todos/tree/master/test/mocha下
测试是从浏览器运行的,但是当我通过节点尝试时,它不会接收任何spec文件.
使用方法:运行:npm install then:grunt
我的问题是:
我正在尝试在每次构建时生成测试报告到 teamcity 中。我研究了几种方法,最终找到了伊斯坦布尔的 teamcity 记者:teamcity
现在我正在尝试将其集成到 teamcity 中,但我还没有找到任何有关它的说明。
我继承了一个带有 Jasmine 单元测试的 JS 代码库。测试框架使用karma和instanbul-combine获取代码覆盖率。它似乎istanbul-combine不适用于当前的节点模块,此外不再维护:推荐的替换是nyc. 我无法代替istanbul-combine与nyc在Makefile。
我成功地将我单独的覆盖结果 (json) 文件合并到一个coverage-final.json文件中(这个 SO 问题),但现在我需要生成摘要报告。
如何从coverage.json文件生成摘要报告?
我认为这里的一个问题是我没有.nyc_output带有中间结果的目录,因为我没有nyc用来生成覆盖数据。我所有的覆盖数据都在一个coverage目录及其子目录中。
我试过指定一个文件名:
npx nyc report --include coverage-final.json
Run Code Online (Sandbox Code Playgroud)
还尝试指定目录:
npx nyc report --include coverage
Run Code Online (Sandbox Code Playgroud)
两者都不起作用。
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 0 | 0 | 0 | …Run Code Online (Sandbox Code Playgroud) 我写了很多使用穷举检查的代码。
在下面的代码中,_exhaustivenessCheck如果有人添加到UnitOfTime联合中,带有will(故意)的行会出现类型错误。我喜欢这种编程风格,但是当结合代码覆盖率和强大的 linter 时,它变得很痛苦:
function waterFrequencyToMilliseconds(unitOfTime: UnitOfTime): number {
switch (unitOfTime) {
case 'days':
return number * ONE_DAY;
case 'weeks':
return number * ONE_WEEK;
}
/* istanbul ignore next */
// eslint-disable-next-line
const _exhaustivenessCheck: never = unitOfTime;
}
Run Code Online (Sandbox Code Playgroud)
我需要告诉伊斯坦布尔和 eslint 在我做正确的事情时让我一个人呆着。
有没有一种标准的方法来处理这种情况,而不必添加“忽略”和“禁用”注释或完全关闭 lint 规则或代码覆盖率?
我对 Jasmine 进行了单元测试。当我运行这个单元测试时,它没有任何错误,但是当我在代码覆盖率中查看它时。它显示一些错误消息:“声明未涵盖”

我想解决这个错误。我能做什么?谢谢
istanbul ×13
javascript ×6
mocha.js ×4
nyc ×3
angularjs ×2
unit-testing ×2
angular8 ×1
babeljs ×1
gruntjs ×1
jasmine ×1
karma-runner ×1
node.js ×1
requirejs ×1
teamcity ×1
typescript ×1
windows-7 ×1
xunit ×1