How can I get a list of passing tests from karma runner suite?

JavascriptUnit TestingKarma Runner

Javascript Problem Overview


When I run karma on my webapp, I only get generic messages like tests passed - is there a way to get a list of passing tests? How do I get more verbose output?

I cannot find this anywhere in the documentation.

Javascript Solutions


Solution 1 - Javascript

I know how this can be done!

Karma's terminal output comes from objects called Reporters. Karma ships with some built-in Reporters (they can be found in karma/lib/reporters). Karma is also able to use custom Reporters.

You can specify which reporters are used in your project's karma.config.js file.

For example, the 'dots' reporter just prints a dot when each test passes:

reporters: ['dots'],

The 'progress' reporter prints more than dots:

reporters: ['progress'],

The custom reporter karma-spec-reporter prints the name of each test when the test succeeds or fails (but not much else):

reporters: ['spec'],

You may want to roll your own reporter, since karma-junit-reporter, karma-spec-reporter, and the included reporters may not meet your needs.

I am guessing that customizing karma-spec-reporter is the best option in this case, since it already prints a line when a test succeeds.

If you are looking for something even more simple to work from, here is a custom reporter that I built. It reports passing and failing tests with no terminal colors.

Solution 2 - Javascript

I recommend the Karma Spec Reporter. This will give you a pretty unit test report like this.

Karma unit test spec

How to use it:

  1. Install the Karma Spec Reporter

> On the command line in your project, > > npm install karma-spec-reporter --save-dev

  1. Add Karma Spec Reporter to the configuration

> In 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"], > ...

That is all. Enjoy.

Solution 3 - Javascript

Use this plugin with karma 0.9.0 or later

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

Solution 4 - Javascript

You could add logs to your test spec. Check out log4js-node:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAmit ErandoleView Question on Stackoverflow
Solution 1 - JavascriptbenshopeView Answer on Stackoverflow
Solution 2 - JavascriptMattView Answer on Stackoverflow
Solution 3 - JavascriptSatshabadView Answer on Stackoverflow
Solution 4 - JavascriptgrantView Answer on Stackoverflow