Jenkins 執行 ASP.NET Core 測試

Posted on 2019-04-25

之前的文章 ( Jenkins 建置 ASP.NET Core 專案 ) 已經可以建置專案了,現在就來看如何執行測試,然後顯示測試結果

測試程式

  • 在 solution 裡面有測試專案 TestJenkins.Test,裡面有一個簡單的測試
public class HomeControllerTests
{
    [Fact]
    public void Index()
    {
        var controller = new HomeController();
        var actionResult = controller.Index();

        var viewResult = actionResult as ViewResult;
        Assert.NotNull(viewResult);
    }
}

加入執行測試

  • 來到專案的設定頁面,在原本的建置步驟下面在多一個步驟 執行 Shell

  • 參考官方的指令 dotnet test,使用 dotnet test + 專案檔就可以執行測試
dotnet test ./TestJenkins.Test/TestJenkins.Test.csproj

測試執行測試

  • 手動建置專案,可以看到有跑測試了,而且是成功的

產生測試報告

  • 可以使用 --logger 產生執行的記錄,把原本的 shell 修改成
dotnet test ./TestJenkins.Test/TestJenkins.Test.csproj --logger "trx;LogFileName=unit_tests.xml"
  • 再一次建置專案,可以看到有產生測試報告出來

Jenkins 顯示測試結果

  • 來到 Jenkins 的 設定 頁面,選擇 管理外掛程式

  • 點選 可用的 頁籤,在右上角的 過濾條件xunit,然後選擇 xUnit,點選 直接安裝

  • 等到變成 藍燈 成功,就好了

  • 回到專案的設定頁面,到最下面的 建置後動作 區塊

  • 選擇 Publish xUnit test result report

  • Report Type 的地方選擇 MSTest-Version

注意:不要選成 xUnit

  • 填入產出 report 的路徑,如果不確定路徑的話,可以看一下執行的內容,就是 workspace 後面的路徑,因自己已經是 TestJenkins,所以路徑從下一層開始

  • 儲存之後重新建置一次,就可以看到頁面上多了一個 最近測試結果

  • 點進去就可以看到相關的記錄

  • 如果執行兩次以上右邊就會出現圖表