我已经为我的karma.conf.js配置了启用预处理功能,以获取有关我的测试代码覆盖率的报告。我已将此行添加到预处理器部分。
preprocessors: {
'public/js/app.js': ['coverage'],
'public/js/filters.js': ['coverage'],
'public/js/directives.js': ['coverage'],
'public/js/services/*.js': ['coverage'],
'public/js/controllers/*.js': ['coverage'],
},
我得到的是一份完全错误的报告。我知道我已经为每个模块和其中的功能编写了测试。但覆盖率报告只正确显示了服务测试。
例如指令的测试。我知道我已经编写了一些测试,并且这些测试也将被执行。但报告显示我只测试了 36% 的代码行。
这种奇怪行为的原因可能是什么?
更新:
我从规范记者那里看到了这个输出:
Directives:
bsTooltip:
when the element was created:
PASSED - should call the popup function
bsSwitchtext:
when the model isBusy changes to true:
PASSED - should call the button method with loading
when the model isBusy changes to false changes:
PASSED - should call the button method with loading
所以我认为我的测试将全部执行。