mochawesome-report-generator vs mochawesome vs cucumber-html-reporter vs jest-html-reporters
テストレポート生成ライブラリ
mochawesome-report-generatormochawesomecucumber-html-reporterjest-html-reporters類似パッケージ:
テストレポート生成ライブラリ

テストレポート生成ライブラリは、テスト結果を視覚的に表示するためのツールです。これらのライブラリは、テストの実行結果をHTML形式で出力し、開発者やチームがテストの進捗状況や結果を簡単に確認できるようにします。テストの可視化は、バグの早期発見や品質向上に寄与します。

npmのダウンロードトレンド
3 年
GitHub Starsランキング
統計詳細
パッケージ
ダウンロード数
Stars
サイズ
Issues
公開日時
ライセンス
mochawesome-report-generator1,473,2542391.16 MB821ヶ月前MIT
mochawesome1,404,6601,07335.7 kB813ヶ月前MIT
cucumber-html-reporter426,34623612.5 MB931年前MIT
jest-html-reporters246,9065313.18 MB222年前MIT
機能比較: mochawesome-report-generator vs mochawesome vs cucumber-html-reporter vs jest-html-reporters

レポート形式

  • mochawesome-report-generator:

    Mochawesomeで生成されたJSONファイルを基に、HTML形式のレポートを生成します。これにより、Mochawesomeの出力をさらに視覚的に強化できます。

  • mochawesome:

    Mochaのテスト結果をHTML形式で生成し、ビジュアルに優れたレポートを提供します。テストの成功率や失敗の詳細をわかりやすく表示します。

  • cucumber-html-reporter:

    Cucumberのテスト結果をHTML形式で出力し、視覚的にわかりやすいレポートを生成します。テストの成功や失敗を色分けして表示し、詳細なステップ情報も含まれます。

  • jest-html-reporters:

    Jestのテスト結果をHTML形式で表示し、カスタマイズ可能なレポートを生成します。テストの概要や詳細を一目で確認できるように設計されています。

カスタマイズ性

  • mochawesome-report-generator:

    Mochawesomeのオプションを利用して、生成されるレポートの詳細を調整できます。

  • mochawesome:

    多くのオプションが用意されており、レポートの内容やスタイルを詳細にカスタマイズできます。

  • cucumber-html-reporter:

    基本的な設定で使用できますが、CSSをカスタマイズすることで独自のスタイルを適用することも可能です。

  • jest-html-reporters:

    設定ファイルを通じて、レポートの出力先やフォーマットを柔軟に変更できます。

統合の容易さ

  • mochawesome-report-generator:

    Mochawesomeと連携して動作し、既存のレポートをHTMLに変換するための簡単な手順で使用できます。

  • mochawesome:

    Mochaと簡単に統合でき、テスト実行後に自動的にレポートを生成します。

  • cucumber-html-reporter:

    Cucumberのテストフレームワークとシームレスに統合でき、特別な設定なしで使用可能です。

  • jest-html-reporters:

    Jestのテストフレームワークに簡単に統合でき、すぐに使用を開始できます。

出力の詳細度

  • mochawesome-report-generator:

    MochawesomeのJSON出力を基に、詳細なレポートを生成し、テストの全体像を把握できます。

  • mochawesome:

    テストの成功率や失敗の詳細を視覚的に表示し、問題の特定が容易です。

  • cucumber-html-reporter:

    テストの各ステップの詳細を含むため、テストの流れを把握しやすいです。

  • jest-html-reporters:

    テストケースごとの成功・失敗の詳細を表示し、全体の進捗状況も把握できます。

学習曲線

  • mochawesome-report-generator:

    Mochawesomeを使用している場合、特に難しい設定はなく、簡単にレポートを生成できます。

  • mochawesome:

    Mochaの基本的な理解があれば、すぐに使い始めることができます。

  • cucumber-html-reporter:

    Cucumberの使用経験があれば、比較的簡単に導入できます。

  • jest-html-reporters:

    Jestを使用している場合、特に学習曲線は緩やかです。

選び方: mochawesome-report-generator vs mochawesome vs cucumber-html-reporter vs jest-html-reporters
  • mochawesome-report-generator:

    Mochawesomeで生成されたJSONレポートをHTMLに変換したい場合に選びます。Mochawesomeと組み合わせて使用することで、より柔軟なレポート生成が可能です。

  • mochawesome:

    Mochaを使用しているプロジェクトで、詳細なテストレポートを生成したい場合に適しています。カスタマイズ性が高く、視覚的に優れたレポートを提供します。

  • cucumber-html-reporter:

    Cucumberのテスト結果をHTML形式で表示したい場合に選択します。特にBDD(Behavior Driven Development)を採用しているプロジェクトに適しています。

  • jest-html-reporters:

    Jestを使用している場合、Jestのテスト結果をHTMLで表示したい時に選びます。Jestのエコシステムに統合されており、簡単に設定できます。

mochawesome-report-generator のREADME

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:

FlagTypeDefaultDescription
-f, --reportFilenamestringmochawesomeFilename of saved report. See notes for available token replacements.
-o, --reportDirstring[cwd]/mochawesome-reportPath to save report
-t, --reportTitlestringmochawesomeReport title
-p, --reportPageTitlestringmochawesome-reportBrowser title
-i, --inlinebooleanfalseInline report assets (scripts, styles)
--cdnbooleanfalseLoad report assets via CDN (unpkg.com)
--assetsDirstring[cwd]/mochawesome-report/assetsPath to save report assets (js/css)
--chartsbooleanfalseDisplay Suite charts
--codebooleantrueDisplay test code
--autoOpenbooleanfalseAutomatically open the report
--overwritebooleantrueOverwrite existing report files. See notes.
--timestamp, --tsstringAppend timestamp in specified format to report filename. See notes.
--showPassedbooleantrueSet initial state of "Show Passed" filter
--showFailedbooleantrueSet initial state of "Show Failed" filter
--showPendingbooleantrueSet initial state of "Show Pending" filter
--showSkippedbooleanfalseSet initial state of "Show Skipped" filter
--showHooksstringfailedSet the default display mode for hooks
failed: show only failed hooks
always: show all hooks
never: hide all hooks
context: show only hooks that have context
--saveJsonbooleanfalseShould report data be saved to JSON file
--saveHtmlbooleantrueShould report be saved to HTML file
--devbooleanfalseEnable dev mode (requires local webpack dev server)
-h, --helpShow CLI help

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

reportFilename replacement tokens

Using the following tokens it is possible to dynamically alter the filename of the generated report.

  • [name] will be replaced with the spec filename when possible.
  • [status] will be replaced with the status (pass/fail) of the test run.
  • [datetime] will be replaced with a timestamp. The format can be - specified using the timestamp option.

For example, given the spec cypress/integration/sample.spec.js and the following config:

{
  reporter: "mochawesome",
  reporterOptions: {
    reportFilename: "[status]_[datetime]-[name]-report",
    timestamp: "longDate"
  }
}

The resulting report file will be named pass_February_23_2022-sample-report.html

Note: The [name] replacement only occurs when mocha is running one spec file per process and outputting a separate report for each spec. The most common use-case is with Cypress.

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:

CharactersReplacementExampleOutput
spaces, commasunderscoreWed March 29, 2017Wed_March_29_2017
slasheshyphen3/29/20173-29-2017
colonsnull17:46:21174621

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