一般的にコードカバレッジツールから始めたばかりですが、すべてが正しく設定されていると思います. しかし、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
|
繰り返し.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("");
});
});