在 Karma (AngularJS) 中抑制堆栈跟踪

Suppress the stack trace in Karma (AngularJS)

本文关键字:堆栈 跟踪 Karma AngularJS      更新时间:2023-09-26

有谁知道在测试 AngularJS 时抑制 Karma 给出的堆栈跟踪的方法?(通过配置选项或插件(。

理想情况下,我希望我的测试报告只不过是单行测试用例失败的列表,并带有通常的摘要。我喜欢一次性写出给定模块的测试,然后在编写实际代码时将其用作直接的待办事项列表。这就是我在对其他东西进行单元测试时通常设置它的方式。相反,我得到了一行又一行的痕迹,并且必须滚动搜索我唯一关心的行:

">浏览器版本 (OS( 我的有用测试用例失败">

我已经尝试了各种业力配置日志级别选项,但我仍然得到跟踪转储。

请注意:我不是在寻找关于堆栈跟踪优点的辩论。我有一个特定的问题,只关心一个特定的答案。如果您知道一个插件可以提供与我正在寻找的内容相似或更好的报告,那么分享!

karma-test-shim.js中,您可以设置 ...

Error.stackTraceLimit = 0; // No Stack trace
Error.stackTraceLimit = 2; // Some Stack trace
Error.stackTraceLimit = Infinity; // Full stack trace

kjhtml(karm-jasmine-html(报告器进行测试。

一段时间后,我只能在 karma-jasmine 项目上找到这个封闭的问题,建议在配置文件中本地创建自定义报告器:

var myReporterFactory = function() {
    this.onRunComplete = function(browser, result) {
        var TOTAL_FAILED = 'TOTAL: %d FAILED, %d SUCCESS'n';
        process.stdout.write(
            require('util').format(TOTAL_FAILED, result.error, result.success)
        );
    };
    return this;
};
// ...
plugins: [
  // other karma plugins ...
  {
    'reporter:myReporter': ['factory', myReporterFactory]
}],

不确定与您的实际结果有多接近...相当长的镜头。或者更好的是换一个不同的记者。这里有两个例子:

  • karma-mocha-reporter,及其输出和maxLogLines选项

  • karma-nyan-reporter (!!(,听起来很有趣,带有 suppressErrorReport 选项

快速而肮脏的解决方案:

in karma-jasmine-html-reporter jasmine.css file将display:none添加到类.jasmine-stack-trace