摩洛哥伊斯坦布尔在反应的应用程序不正确的覆盖面
背景
我的项目包括:
- 一个带有
jsx
和js
(包括*.test.js
)文件的app/
目录 - 调用instanbul的npm脚本:
babel-node ./node_modules/istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha -- \"./{,!(node_modules)/**/}*.spec.js\" --delay --compilers js:babel-core/register --recursive
- 我估计实际上我有3-5%的代码覆盖率
问题
当我运行报告时,数字要高得多:
======== Coverage summary ======== Statements : 93.24% ( 193/207 ) Branches : 41.67% ( 10/24 ) Functions : 92.45% ( 49/53 ) Lines : 94.12% ( 192/204 )
也许instanbul不包括jsx
文件,因为我有:
-
jsx
LOC的jsx
- js〜600 LOC
任何人都可以提供洞察到configuration – 谢谢
编辑1
我添加了一个.instanbul.yml
文件,它改进了一些东西,但似乎还是太高了:
#.instanbul.yml instrumentation: root: app/ extensions: ['.js', '.jsx']
输出:
======== Coverage summary ======== Statements : 74.85% ( 372/497 ) Branches : 32.84% ( 44/134 ) Functions : 84.21% ( 64/76 ) Lines : 75.3% ( 372/494 )
编辑2
我用.istanbul.yml
并调整了我的.istanbul.yml
:
babel-node isparta cover --include \"**/*.js\" --include \"**/*.jsx\" _mocha -- \"./{,!(node_modules)/**/}*.spec.js\" --delay --compilers js:babel-core/register --recursive
输出:
===== Coverage summary ===== Statements : 87.7% ( 934/1065 ), 46 ignored Branches : 82.11% ( 413/503 ), 137 ignored Functions : 94.17% ( 194/206 ), 30 ignored Lines : 77.88% ( 419/538 ) ==================================
解决scheme+改变战略
我还需要排除.instanbul.yl
testing:
instrumentation: root: app excludes: ['*.spec.js'] extensions: ['.js', '.jsx']
起初,我感到惊讶的是,报道仍然如此之高。 但是这是因为总的来说,大部分的代码实际上是与渲染/生命周期有关的。 只要testing环境(浅)呈现组件(使用酶),就会执行此代码。
这表明我需要稍微改变策略。 我可能会想出另一类行为testing( *.bvr.test.js
),它将被devise为镜像用户的故事。 这将是一个单独的代码覆盖率报告。