【发布时间】:2015-01-24 01:10:02
【问题描述】:
刚开始使用一般的代码覆盖工具,但我认为我已经正确设置了所有内容。但是,Istanbul 正在生成我的规范文件而不是源文件的覆盖率报告?
当我运行jasmine-node repeatSpec.js --verbose
我明白了:
repeat Start
repeats strings - 1 ms
repeat Finish - 3 ms
Finished in 0.004 seconds
1 Tests, 0 Failures, 0 Skipped
这是正确的,如果我故意未通过测试,它也会正确失败。
但是,当我运行这个 istanbul 命令时:
istanbul cover /d/Users/rkan/AppData/Roaming/npm/node_modules/jasmine-node/bin/jasmine-node repeatSpec.js
我收到此响应,它正在根据我的规范文件检查覆盖率。
=============================================================================
Writing coverage object [d:\playground\ue\node\Domain\WorkQueue\tests\coverage\coverage.json]
Writing coverage reports at [d:\playground\ue\node\Domain\WorkQueue\tests\coverage]
=============================================================================
=============================== Coverage summary ===============================
Statements : 100% ( 5/5 )
Branches : 100% ( 0/0 )
Functions : 100% ( 2/2 )
Lines : 100% ( 5/5 )
================================================================================
我做错了什么?
谢谢!
nb - 文件目录是这样的
|
|-lib/repeat.js
|
|-tests/repeatSpec.js
|
repeat.js
if (! String.prototype.repeat) {
String.prototype.repeat = function (times) {
return new Array(times+1).join(this);
}
}
if (x=68){
x = 2;
}
if (x=200){
x =5;
}
repeatSpec.js
require("../lib/repeat.js");
describe("repeat", function() {
it("repeats strings", function() {
expect("abc".repeat(2)).toEqual("abcabc");
expect("abc".repeat(0)).toEqual("");
});
});
【问题讨论】:
-
我已经很久没有提出这个问题了。但是,我面临同样的问题,只为 spec.js 而不是 .js 文件生成覆盖范围。你应用的解决方案是什么?这将非常有帮助。谢谢
标签: javascript node.js unit-testing code-coverage istanbul