前回の振り返り
T-DASHのCLI版を用いてCI/CDを行う事は出来ました。ただし、テスト結果が失敗した場合もSuccessになってしまっています。
そこで、T-DASHで出力されているxUnitファイルを読み込むことでテスト結果を確認できるようにしたいと思います。
xUnitとは
xUnitとは、コンピュータプログラムの単体テスト(ユニットテスト)を行うためのテスティングフレームワークの総称である。これらのフレームワークでは、関数やクラスなど、ソフトウェアの様々な要素(ユニット)をテストすることができる。 Wikipediaより引用
reportsフォルダにあるxunit_output-YYYYMMDD-HHMMSS.xmlが該当します。
中身はこちら。テスト中に失敗したものから、そもそもシステムエラーになったものまで混ざっています。
gitlab-ci.ymlを修正して実行
artifacts:reports:junit
でxmlファイルのパスを指定してパイプラインを実行しています。
GitLabの公式によるとjUnitのレポートを表示できるようにするための設定ですが、jUnitはxUnitの一部だと言うWikipediaの内容を信じていきます。
上手くいけばこのxmlの中身がGitLab上で見れるようになるはず・・・
artifactsのuploadにてAPIを投げる際にエラーが発生して失敗してしまいました。
可能性
-
あくまでjunit
なので、xUnitのxmlであってもjUnitで実行したテストのXMLではないとみなされて読み込めない
⇒GitLabのサンプルではjUnit以外でもxUnitのフレームワークであればよさそうだったので違いそう -
サイズの問題
⇒サイズが大きいとこのエラーが出るという記事があったが、7KBなので今回は違いそう -
GitLabのバージョンの問題
⇒GitLabのバージョン、GitLab-runnerのバージョンともに要件を満たしていたため違いそう - Windows上でrunner動かしているのがよくない(GitLabはLinux、runnerはWindowsという異なる環境)
- 使っているGitLabの環境がPaaSなので、一部のAPIの利用が防がれている
xUnitやjUnitを使ったことが無いため、そもそもやっていることがイチから間違っているかもしれません。
何か進展があったら追記しようと思います。
追記1:jUnitでなければいけない可能性とバージョンによる違いの可能性について調査