Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Circle CI のテストで Mocha のテストレポートを生成する

alt

JavaScript + Mocha のプロジェクトでテスト結果をCircle CIで取り扱いたい場合、
mocha-junit-reporter package を使います。

※この情報は個人メモ的な内容であり、既出情報です。

サンプルコード

FizzBuzzのコードで検証します

テスト対象のコード

module.exports = {
  calc: function(number) {
    if (number % 15 == 0) {
      return "FizzBuzz";
    } else if(number % 5 == 0) {
      return "Buzz";
    } else if (number % 3 == 0) {
      return "Fizz";
    } else {
      return number.toString();
    }
  }
};

テストコード

var assert = require("assert");

var fizzbuzz = require("../src/fizzbuzz.js");

describe("fizzbuzz", function() {
    it("FizzBuzz", function() {
        assert.equal("FizzBuzz", fizzbuzz.calc(15));
    });

    it("Buzz", function() {
        assert.equal("Buzz", fizzbuzz.calc(5));
    });

    it("Fizz", function() {
        assert.equal("Fizz", fizzbuzz.calc(3));
    });

    it("other", function() {
        assert.equal("1", fizzbuzz.calc(1));
    });
});

設定

circle.yml の設定

test:
  override:
    - mocha test --reporter mocha-junit-reporter:
        environment:
          MOCHA_FILE: $CIRCLE_TEST_REPORTS/junit/test-results.xml

テストレポート未設定

mocha-junit-reporter を追加していない場合は下記のような表示になります。

f:id:tbpg:20160903071747p:plain

テスト成功時

mocha-junit-reporter を追加してから実行してテストが成功した場合の表示です。

f:id:tbpg:20160903071753p:plain

テスト失敗時

mocha-junit-reporter を追加してから実行してテストが失敗した場合の表示です。

f:id:tbpg:20160903071800p:plain

外部資料