How can I get a list of passing tests from karma runner suite?
JavascriptUnit TestingKarma RunnerJavascript 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.
How to use it:
- Install the Karma Spec Reporter
> On the command line in your project,
>
> npm install karma-spec-reporter --save-dev
- 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
Solution 4 - Javascript
You could add logs to your test spec. Check out log4js-node: