Jenkins Plugin – MSTest

當我們使用 Visual Studio 的 test project 時,所產生的 test report 格式為 .trx 檔,Jenkins 無法直接使用。

因此我們可以透過 MSTest 這個 plugin ,將 .trx 檔轉成 JUnit XML 格式,讓 Jenkins 可以讀取。

* MSTest plugin 主要是在轉換 report ,MSTestRunner plugin 則是可以設定 MSTest command line tool。

一、 到 Manager Jenkins -> Manager Plugins -> Available,下載 MSTest plugin 並安裝。

未命名

二、 在 Job 裡面的 configure -> Post -build Actions ,選擇 Publish MSTest test result report。

MSTest

指定 .trx report 的位置就可以了。

不過 MSTest plugin 預設的 report ,當點進去 fail case 的時候只會看到 Assert Fail 與 Stack trace 的訊息(如下圖)。

Stack

如果想讓 report 包含我們自己寫的 console log,我們可以去修改 ..\Jenkins\plugins\mstest\WEB-INF\classes\hudson\plugins\mstest\mstest-to-junit.xsl   這個檔案。

首先新增一個變數去取得 StdOut 的內容

<xsl:variable name="output" select="a:Output/a:StdOut"/>

再來,在要印出資訊的地方印出這個變數的內容

<failure>
MESSAGE:
<xsl:value-of select="$message" />
+++++++++++++++++++
Log:
<xsl:value-of select="$output" />
+++++++++++++++++++
STACK TRACE:
<xsl:value-of select="$stacktrace" />
</failure>

* 這邊要注意,.trx 檔本身自己就要有包含 StdOut 的內容,可以參考
MSDN MSTest.exe 命令列選項,讓 test report 有 Stdout 的內容。

之後我們點進去 fail 的 case 就可以看到我們所寫的 log 了。

stdout

參考文章:

Getting your MSTEST unit test stdout to show in Jenkins
MSDN MSTest.exe 命令列選項

 

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s