AVAのテスト実行結果をJenkinsに流す場合のお話です。
結論
下記を実行すれば、result.xmlにXMLが出力される。
$ npm i -g tap-xunit
$ ava -t | tap-xunit > result.xml
以下、詳細です。
JUnitのXML
JUnitの実行結果のXMLフォーマット | Developers.IO
上記記事に詳しく書いているが、Jenkinsにテスト結果を入力するには「JUnitのXML」と呼ばれる形式で出力する必要がある。
そのXMLに公式な仕様は無い(Schemaはこれ?)ようだが、CIツールのデファクトスタンダードになっているようで、mochaならばxunit-file, mocha-jenkins-reporter, mocha-junit-reporterなどを使えばOK。
AVA
avajs/ava: Futuristic JavaScript test runner
AVA(えぃゔぁ)は、JavaScriptのテストフレームワーク。power-assertやBabel、Assertion Planning(参考記事:おまえは今まで実行したassertの回数を覚えているのか?あるいは新しいアサーションユーティリティのご提案 - teppeis blog)にデフォルトで対応していたりと、ナウい。また、テストを並列で実行するので速い。
ava -t | tap-xunit
ava -t
またはava --tap
を実行すると、AVAはテスト結果をTAP形式で出力する。mochaのreporterのように、プラグイン形式でテスト結果の出力を外部パッケージに委譲する仕組みを用意しない代わりに、TAP形式で出力したもの各々加工してくれというスタンスっぽい。(今後実装するのかもしれませんが)
tap-xunitはTAPを入力として「JUnitのXML」を出力するパッケージ。なので、ava -t | tap-xunit
とすれば、AVAのテスト結果を「JUnitのXML」として出力できるというわけなのでした。
おわり
TAPのページを見ると、他の言語のツールが載っている。また、JavaScript(Node.js)だと、tapeのREADMEに色々なreporterが乗っているので、「JUnitのXML」以外にも出力したい形式があれば参考になるはず。