2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VisualStudioのテストエクスプローラの結果をhtml出力

Last updated at Posted at 2022-01-17

はじめに

Visual Studioのテストエクスプローラの結果をhtmlに変換するツールを作成したので共有します。

ツールの概要

以下のような、テストエクスプローラの結果を
テストエクスプローラ出力

このような感じのhtmlに変換します。
html出力結果

ツールのリポジトリはこちらです。
https://github.com/HikosakaRyo/trxlog2html

インストール

NuGet.orgからインストールできます。

.NETグローバルツールとしてインストールする場合

dotnet tool install --global trxlog2html --version 1.0.0

.NETローカルツールとしてインストールする場合

dotnet new tool-manifest
dotnet tool install --local trxlog2html --version 1.0.0

※)グローバルツールとローカルツールの違いについては以下を参照してください。
https://docs.microsoft.com/ja-jp/dotnet/core/tools/global-tools

使い方

以下の手順で使用します。

  1. テストを実行してTRXログ(Visual Studio Test Result File)を出力します。
  2. 1のTRXログを、当ツールを使ってhtmlに変換します。

各手順の詳細は以下の通りです。

テストを実行してTRXログを出力する

通常のテストはVisualStudioのGUIから実行できるのですが、TRXログを出力するためには、テストをコマンドラインから実行する必要があります。
VisualStudioには、テストをコマンドラインから実行するためにVSTest.Console.exeというツールが同梱されています。
ツールはVisual Studioインストールディレクトリ配下にあるのですが、ディレクトリが深いため、パスを通すか以下のようなバッチを作成することをお勧めします。

@echo off
setlocal

REM VSTEST_DIRの部分を自分の環境に合わせてカスタマイズしてください
SET VSTEST_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow\

REM TEST_DLL_PATHに、テスト用DLLのパスを指定します
SET TEST_DLL_PATH=.\bin\Debug\.netcoreapp,version=v5.0\UnitTestSampleTests.dll

"%VSTEST_DIR%vstest.console.exe" %TEST_DLL_PATH% /logger:trx;LogFileName=utest_result.xml

endlocal

TRXログをhtmlに変換する

コマンドプロンプトから以下を実行します。

dotnet run trxlog2html -i [TRXログファイルのパス] -o [出力するhtmlのパス]

出力するhtmlのカスタマイズ

当ツールではRazorテンプレートエンジンを利用して最終的なhtmlを生成しています。
利用するテンプレートを差し替えることで、出力されるhtmlをカスタマイズすることが可能です。
テンプレートを指定する場合は、以下のように-tオプションにテンプレートのパスを指定してください。

dotnet run trxlog2html -i [TRXログファイルのパス] -o [出力するhtmlのパス] -t [テンプレートのパス]

以下は、デフォルトで使用されるテンプレートです。
色々いじって試してみてください。
https://github.com/HikosakaRyo/trxlog2html/blob/main/built_in_templates/jstest_like.cshtml

類似ツール

このツールをNuGetに公開したときに、似たようなツールを見つけたため、ついでにご紹介します。

私は試してみてはいないのですが、こちらはXSLTでTRXファイルをhtmlに変換しているっぽいですね。
RazorよりもXSLTのほうが使い慣れているという方は、こちらの利用を検討してもよいかもしれません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?