50

当我在我的 web 应用程序上运行 karma 时,我只会收到诸如通过测试之类的通用消息 - 有没有办法获得通过测试的列表?如何获得更详细的输出?

我在文档中的任何地方都找不到这个。

4

4 回答 4

59

我知道如何做到这一点!

Karma 的终端输出来自名为 Reporters 的对象。Karma 附带了一些内置的 Reporter(它们可以在 中找到karma/lib/reporters)。Karma 还能够使用自定义记者。

您可以指定在项目karma.config.js文件中使用哪些报告器。

例如,'dots' 报告器仅在每个测试通过时打印一个点:

reporters: ['dots'],

“进度”记者打印的不仅仅是点:

reporters: ['progress'],

当测试成功或失败时,自定义报告器 karma-spec-reporter会打印每个测试的名称(但仅此而已):

reporters: ['spec'],

您可能想要滚动自己的记者,因为 karma-junit-reporter、karma-spec-reporter 和包含的记者可能无法满足您的需求。

我猜想在这种情况下自定义 karma-spec-reporter 是最好的选择,因为它在测试成功时已经打印了一行。

如果您正在寻找更简单的工作,是我构建的自定义报告器。它报告没有终端颜色的通过和失败的测试。

于 2015-02-10T02:04:50.540 回答
55

我推荐 Karma Spec Reporter。这会给你一个像这样漂亮的单元测试报告。

Karma 单元测试规范

如何使用它:

  1. 安装 Karma Spec Reporter

在项目的命令行中,

npm install karma-spec-reporter --save-dev

  1. 将 Karma Spec Reporter 添加到配置中

karma.conf.js,

...
  config.set({
  ...
    reporters: ["spec"],
    specReporter: {
      maxLogLines: 5,         // limit number of lines logged per test
      suppressErrorSummary: true,  // do not print error summary
      suppressFailed: false,  // do not print information about failed tests
      suppressPassed: false,  // do not print information about passed tests
      suppressSkipped: true,  // do not print information about skipped tests
      showSpecTiming: false // print the time elapsed for each spec
    },
    plugins: ["karma-spec-reporter"],
  ...

就这些。享受。

于 2016-11-02T16:23:38.127 回答
9

将此插件与 karma 0.9.0 或更高版本一起使用

https://github.com/mlex/karma-spec-reporter

于 2013-07-14T07:40:02.177 回答
1

您可以将日志添加到您的测试规范中。查看 log4js 节点:

https://github.com/nomiddlename/log4js-node

于 2014-06-05T09:34:12.393 回答