jenkins で複数の junit_output.xml を集める

一つの job で複数の project などの test をし、 jenkins 側で複数の junit_output.xml 的なものを集計してもらう場合についてです。

まず JUnitテスト結果の集計 のところには例えば /path/to/*/junit_output.xml のように指定することが出来ます。 tap の結果を junit に変換するには TAP::Harness::JUnit を使っていますが、このままだと、/path/to/a/junit_output.xml と /path/to/b/junit_output.xml にある testcase とかが同じ名前になってしまうことがあるのでそういうことを考慮すると

export JUNIT_OUTPUT_FILE=junit_output.xml
export JUNIT_NAME_MANGLE=none

cd /path/to/a
export JUNIT_PACKAGE=a
prove -lvr --harness TAP::Harness::JUnit t

cd /path/to/b
export JUNIT_PACKAGE=b
prove -lvr --harness TAP::Harness::JUnit t

みたいな感じで /path/to/*/junit_output.xml として集計すると a.t/hoge_fuga.t, b.t/hoge_fuga.t みたいな感じで集計されて良いかなと思いました。

JUNIT_OUTPUT_FILE, JUNIT_NAME_MANGLE に関しては以下に書きました