Javascript 如何在控制台中获得更好的测试报告?

Javascript 如何在控制台中获得更好的测试报告?,javascript,node.js,karma-jasmine,karma-runner,Javascript,Node.js,Karma Jasmine,Karma Runner,我有一个相当简单的karma.config.js文件 basePath = '../'; files = [ JASMINE, JASMINE_ADAPTER, 'js/lib/angular*.js', 'test/lib/angular/angular-mocks.js', 'js/**/*.js', 'test/unit/**/*.js' ]; autoWatch = true; browsers = ['PhantomJS']; 当我运行karma st

我有一个相当简单的karma.config.js文件

basePath = '../';


files = [
  JASMINE,
  JASMINE_ADAPTER,
  'js/lib/angular*.js',
  'test/lib/angular/angular-mocks.js',
  'js/**/*.js',
  'test/unit/**/*.js'
];

autoWatch = true;
browsers = ['PhantomJS'];

当我运行
karma start config/karma.conf.js——单次运行时,我得到以下输出

$ karma start config/karma.conf.js --single-run
[2013-06-24 23:47:08.750] [DEBUG] config - autoWatch set to false, because of singleRun
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9 (Mac)]: Connected on socket id LwMoWxzIbSUuBsvIqB_m
PhantomJS 1.9 (Mac): Executed 6 of 6 SUCCESS (0.073 secs / 0.02 secs)
我一直在搜索一些东西来告诉我如何获得记录的测试的输出(例如,
成功单元:服务myService应该表现出来

我能看到测试输出的唯一方法是打开Chrome并单击“调试”,然后显示开发者工具控制台。我希望将消息注销到终端,但我无法确定如何使其正常工作。

通过安装

npm安装karma spec reporter——保存开发人员

并将此添加到my karma.config.js

记者:['spec'],

默认情况下,Karma加载所有NPM模块,这些模块是它的同级模块,并且它们的名称与Karma-*匹配

但是一些用户不得不在他们的配置中添加以下内容

插件:['karma-spec-reporter']

这是我的工作(草稿)配置,没有“插件”部分(实际上我不完全理解为什么需要指定它们……):

package.json

  "devDependencies": {
    [...]
    "grunt-karma": "~0.9.0",
    "karma": "~0.12.24",
    "karma-jasmine": "~0.2.3",
    "karma-chrome-launcher": "~0.1.5",
    "karma-phantomjs-launcher": "~0.1.4",
    "karma-spec-reporter": "0.0.13"
  }
karma.conf.js

grunfile.js


现在,当我运行
grunt karma
时,来自
*-spec.js
文件(
description('message',function())
)的消息会很好地显示在控制台中。

只是另一个细节-如果您在karma.config.js中保留默认的报告程序“progress”,如下所示:

reporters: ["progress", "spec"]
或者另一个控制台报告器,“spec”报告器输出将无法工作

您应该只保留“spec”一个,或者将“spec”与其他浏览器报告器一起保存。例如:

reporters: ["spec", "coverage"]
您也可以使用 作为一名记者,你应该在控制台中有一份干净的报告

npm i karma-mocha-reporter --save-dev

// karma.conf.js
module.exports = function(config) {
  config.set({
    frameworks: ['jasmine'],

    // reporters configuration
    reporters: ['mocha']
  });
};
有时,例如,在
@angular/cli
环境中,您应该需要如下所示:

plugins: [
   ...
   require('karma-mocha-reporter'),
   ...
]

我写了一篇记者文章,让文章更具可读性:karma-Helped reporter

有一些很好的自定义选项:

安装内部说明,基本上是
npm安装--保存dev karma help reporter
,然后添加到karma配置插件部分:

plugins: [ 
  require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],

这个问题真是太糟糕了。如果我没记错的话,我是在花了太长时间才把那个标题打出来的。谷歌搜索的不仅仅是标题,这是一件好事。@brettof86有人弄乱了这个问题的标题。在阅读问题本身时,它显然与HTML无关。我本来想换个标题,但想了一会儿,我觉得我对这个问题还不够了解,无法做到这一点。(我不清楚的是,你是否在寻找一个简单的报告机制,或者你是否想从测试本身中获取某种形式的输出。)你能修改它吗?你是对的,它与HTML无关。我在找一个控制台记者,特别是《卡玛规范》记者。我再次编辑了标题并删除了“HTML”。直到我在karma.conf.js文件karma spec reporter中指定为插件,它才对我起作用;这就是我的插件阵列的外观插件:[‘karma chrome launcher’、‘karma coverage’、‘karma firefox launcher’、‘karma jasmine’、‘karma junit reporter’、‘karma spec reporter’],请注意结尾处的karma spec reporter是的,您必须告诉配置您正在使用此插件。如果您的所有插件都以
karma-
开头,那么您不必引用任何插件。默认行为是加载所有
karma-*
插件。与@blues_驱动和brettof86描述的一样。此处相同。。必须添加插件。。我继续并建议对这个答案进行编辑。这真的很好。谢谢分享。没错,我也有同样的问题。记者:[“规格”、“覆盖范围”]作品
plugins: [
   ...
   require('karma-mocha-reporter'),
   ...
]
plugins: [ 
  require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],