All Projects → adamgruber → Mochawesome Report Generator

adamgruber / Mochawesome Report Generator

Licence: mit
Standalone mochawesome report generator. Just add test data.

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Mochawesome Report Generator

Nspec
A battle hardened testing framework for C# that's heavily inspired by Mocha and RSpec.
Stars: ✭ 242 (+59.21%)
Mutual labels:  tdd, mocha
Baretest
An extremely fast and simple JavaScript test runner.
Stars: ✭ 364 (+139.47%)
Mutual labels:  tdd, mocha
chai-exclude
Exclude keys to compare from a deep equal operation with chai expect or assert.
Stars: ✭ 33 (-78.29%)
Mutual labels:  mocha, tdd
mocha-cakes-2
A BDD plugin for Mocha testing framework
Stars: ✭ 44 (-71.05%)
Mutual labels:  mocha, tdd
Helm Test
A mocha based testing CLI for helm packages
Stars: ✭ 22 (-85.53%)
Mutual labels:  tdd, mocha
Testdeck
Object oriented testing
Stars: ✭ 206 (+35.53%)
Mutual labels:  tdd, mocha
xv
❌ ✔️ zero-config test runner for simple projects
Stars: ✭ 588 (+286.84%)
Mutual labels:  mocha, tdd
Karma
Spectacular Test Runner for JavaScript
Stars: ✭ 11,591 (+7525.66%)
Mutual labels:  tdd, mocha
Snap Shot It
Smarter snapshot utility for Mocha and BDD test runners + data-driven testing!
Stars: ✭ 138 (-9.21%)
Mutual labels:  tdd, mocha
Public
Repository for wallaby.js questions and issues
Stars: ✭ 662 (+335.53%)
Mutual labels:  tdd, mocha
Mocha
☕️ simple, flexible, fun javascript test framework for node.js & the browser
Stars: ✭ 20,986 (+13706.58%)
Mutual labels:  tdd, mocha
Should Enzyme
Useful functions for testing React Components with Enzyme.
Stars: ✭ 41 (-73.03%)
Mutual labels:  tdd, mocha
Mochawesome
A Gorgeous HTML/CSS Reporter for Mocha.js
Stars: ✭ 860 (+465.79%)
Mutual labels:  tdd, mocha
Cracking The Coding Interview Javascript Solutions Ctci
Javascript solutions to Cracking the Coding Interview (CTCI)
Stars: ✭ 139 (-8.55%)
Mutual labels:  tdd, mocha
Http4k
The Functional toolkit for Kotlin HTTP applications. http4k provides a simple and uniform way to serve, consume, and test HTTP services.
Stars: ✭ 1,883 (+1138.82%)
Mutual labels:  tdd
React Permissible
👮‍♂️Making the permission management for React components easier.
Stars: ✭ 145 (-4.61%)
Mutual labels:  mocha
Cgreen
A modern, portable, cross-language unit testing and mocking framework for C and C++
Stars: ✭ 132 (-13.16%)
Mutual labels:  tdd
Tester
Тестер 1С
Stars: ✭ 131 (-13.82%)
Mutual labels:  tdd
Grosir Obat
Sebuah sistem kasir dan manajemen produk obat untuk penjualan Grosir
Stars: ✭ 147 (-3.29%)
Mutual labels:  tdd
Interviews
A list of fancy questions I've been asked during the interviews I had. Some of them I ask when interviewing people.
Stars: ✭ 140 (-7.89%)
Mutual labels:  tdd

mochawesome-report-generator (marge)

npm Node CI

marge (mochawesome-report-generator) is the counterpart to mochawesome, a custom reporter for use with the Javascript testing framework, mocha. Marge takes the JSON output from mochawesome and generates a full fledged HTML/CSS report that helps visualize your test suites.

Features

Mochawesome Report
  • Simple, clean, and modern design
  • Support for test and suite nesting
  • Displays before and after hooks
  • Review test code inline
  • Stack trace for failed tests
  • Support for adding context information to tests
  • Filters to display only the tests you want
  • Responsive and mobile-friendly
  • Offline viewing
  • CLI for generating reports independent of mochawesome

Usage with mochawesome

  1. Add Mochawesome to your project:

npm install --save-dev mochawesome

  1. Tell mocha to use the Mochawesome reporter:

mocha testfile.js --reporter mochawesome

  1. If using mocha programatically:
var mocha = new Mocha({
  reporter: 'mochawesome'
});

CLI Usage

Install mochawesome-report-generator package

npm install -g mochawesome-report-generator

Run the command

marge [options] data_file [data_file2 ...]

Output

marge generates the following inside your project directory:

mochawesome-report/
├── assets
│   ├── app.css
│   ├── app.js
│   ├── MaterialIcons-Regular.woff
│   ├── MaterialIcons-Regular.woff2
│   ├── roboto-light-webfont.woff
│   ├── roboto-light-webfont.woff2
│   ├── roboto-medium-webfont.woff
│   ├── roboto-medium-webfont.woff2
│   ├── roboto-regular-webfont.woff
│   └── roboto-regular-webfont.woff2
└── mochawesome.html

Options

CLI Flags

marge can be configured via the following command line flags:

Flag Type Default Description
-f, --reportFilename string Filename of saved report
-o, --reportDir string [cwd]/mochawesome-report Path to save report
-t, --reportTitle string mochawesome Report title
-p, --reportPageTitle string mochawesome-report Browser title
-i, --inline boolean false Inline report assets (scripts, styles)
--cdn boolean false Load report assets via CDN (unpkg.com)
--assetsDir string [cwd]/mochawesome-report/assets Path to save report assets (js/css)
--charts boolean false Display Suite charts
--code boolean true Display test code
--autoOpen boolean false Automatically open the report
--overwrite boolean true Overwrite existing report files. See notes.
--timestamp, --ts string Append timestamp in specified format to report filename. See notes.
--showPassed boolean true Set initial state of "Show Passed" filter
--showFailed boolean true Set initial state of "Show Failed" filter
--showPending boolean true Set initial state of "Show Pending" filter
--showSkipped boolean false Set initial state of "Show Skipped" filter
--showHooks string failed Set the default display mode for hooks
--saveJson boolean false Should report data be saved to JSON file
--saveHtml boolean true Should report be saved to HTML file
--dev boolean false Enable dev mode (requires local webpack dev server)
-h, --help Show CLI help

Boolean options can be negated by adding --no before the option. For example: --no-code would set code to false.

Overwrite

By default, report files are overwritten by subsequent report generation. Passing --overwrite=false will not replace existing files. Instead, if a duplicate filename is found, the report will be saved with a counter digit added to the filename. (ie. mochawesome_001.html).

Note: overwrite will always be false when passing multiple files or using the timestamp option.

Timestamp

The timestamp option can be used to append a timestamp to the report filename. It uses dateformat to parse format strings so you can pass any valid string that dateformat accepts with a few exceptions. In order to produce valid filenames, the following replacements are made:

Characters Replacement Example Output
spaces, commas underscore Wed March 29, 2017 Wed_March_29_2017
slashes hyphen 3/29/2017 3-29-2017
colons null 17:46:21 174621

If you pass true as the format string, it will default to isoDateTime.

mochawesome reporter-options

The above CLI flags can be used as reporter-options when using the mochawesome reporter.

Use them in a .mocharc.js file:

module.exports = {
    reporter: 'node_modules/mochawesome',
    'reporter-option': [
        'overwrite=true',
        'reportTitle=My\ Custom\ Title',
        'showPassed=false'
    ],
};

or as an object when using mocha programmatically:

const mocha = new Mocha({
  reporter: 'mochawesome',
  reporterOptions: {
    overwrite: true,
    reportTitle: 'My Custom Title',
    showPassed: false
  }
});

Development

To develop locally, clone the repo and install dependencies. In order to test end-to-end you must also clone mochawesome into a directory at the same level as this repo.

You can start the dev server with npm run devserver. If you are working on the CLI, use npm run dev:cli to watch for changes and rebuild.

Running Tests

Unit Tests

To run unit tests, simply use npm run test. You can also run a single unit test with npm run test:single path/to/test.js.

Functional Tests

Functional tests allow you to run real-world test cases in order to debug the output report. First, start up the dev server in one terminal window with npm run devserver. Then, in another window, run the tests with npm run test:functional. This will generate a report that you can open in the browser and debug.

If you want to run a specific folder of functional tests: npm run test:functional path/to/tests

Or if you want to run a single test: npm run test:functional path/to/test.js

Or mix and match: npm run test:functional path/to/some/tests path/to/another/test.js

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].