我记得在过去的某个时刻,我可以使用Chrome开发工具调试我的测试,并进入我未经证实的来源。
我不确定这是否是一个已更改的配置选项,但现在每当我尝试使用Chrome调试我的测试时,我只会看到缩小的来源。
我需要设置一个选项来查看未经授权的来源吗?
答案 0 :(得分:9)
禁用preprocessors
中的Gruntfile.js
Karma配置。
var karmaConfig = {
...
preprocessors: {
// 'js/**/*.js': 'coverage'
},
reporters: ['spec', 'coverage'],
colors: true,
singleRun: false,
usePolling: true,
...
答案 1 :(得分:5)
我找到了一个不会丢失覆盖率数据的解决方案!
根据Debugging Karma Unit Tests的指南,我提出了以下内容,它适用于IntelliJ:
var sourcePreprocessors = 'coverage';
var isDebugMode = function () {
return process.argv.some(function (argument) {
return argument === '--debug';
});
};
var hasNoCoverage = function () {
return !(process.argv.some(function (argument) {
return argument.includes("coverage");
}));
};
if (isDebugMode() || hasNoCoverage()) {
console.log("Not generating coverage.");
sourcePreprocessors = '';
}
config.set({
...
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
"WebRoot/js/**/*.js": sourcePreprocessors
},
...
});
注意:强>
根据提及here的信息,将以下内容添加到karma.conf.js
(或者您正在配置Karma)应禁用缩小:
coverageReporter: {
instrumenterOptions: {
istanbul: { noCompact: true }
}
}
然而,这不会删除覆盖率数据,而源文件最终仍会被破坏:
__cov_SNsw2QFfQtMZHyIEO9CT1A.s['74']++;
my.toPercentageString = function (value) {
__cov_SNsw2QFfQtMZHyIEO9CT1A.f['18']++;
__cov_SNsw2QFfQtMZHyIEO9CT1A.s['75']++;
return numbro(value).format('0.0%');
};
__cov_SNsw2QFfQtMZHyIEO9CT1A.s['76']++;
答案 2 :(得分:2)
禁用preprocessors
(如提及的@ pgpb.padilla),遗憾的是禁用代码覆盖率(istanbul),如果这是您使用的内容。我发现,禁用混淆的唯一方法是在没有coverage
报告者的情况下单独运行,karma start karma.config.js --reporters progress
然后单独运行,包括覆盖范围karma start karma.config.js --reporters progress,coverage