Open Test Reporting: platform-agnosticなテストレポートのフォーマット

たまたまJUnit 5.9.0のリリースノートを読んでいたら面白いものが目に着きました。

  • XML reports in new Open Test Reporting format

テストレポートのフォーマットとしてはJUnitデファクトスタンダードのようになっていて、様々なプログラミング言語やテストフレームワーク、またCIサービスがテスト結果のサマリー表示のためにサポートしています。しかしJUnitは元々Java世界のものであり、他言語のテスト結果をJUnitフォーマットに出力しようとすると構造を無理矢理合わせることになったり、拡張性もなかったり(もしくは独自拡張になったり)します。言語・テストフレームワーク非依存な新しい仕様を定義することでこうした状況を解消しようという取り組みで面白いですね。

Design goalsとして

  • human-readable
  • streamable
  • machine-readable
  • schema-aware
  • extensible

の5つが挙げられています。ファイル形式としてはJSONとかではなく、JUnitと同じくXMLではあるんですね 👀

JSON is less verbose than XML, but the latter provides more expressive ways to define schemas. Moreover, XML has typed extensions built-in via the use of multiple schemas. Thus, the new formats use XML with accompanying XML schemas.

世の中のエコシステムがどれだけここに乗っかっていくか気になるところですが、まずは本家JUnit自体がサポートしたということで、着目していきたいですね。