Announcing MSTest Framework support for .NET Core RC2 / ASP.NET Core RC2[譯]

weixin_34337265發表於2018-04-10

  .NET Core RC2 和 ASP.NET Core RC2 已在幾周之前釋出,它包含了.NET CLI的介紹,對.NET Core SDK(以前叫 DNX)的改動,ASP.NET 5到ASP.NET Core的進化等,更多特性可以參考.NET 團隊部落格.NET WEB開發團隊部落格

  而現在,我們很興奮的宣佈,MSTest類庫也支援這個釋出版本啦!相關類庫和依賴包都可以在NuGet上獲取。這次是預釋出版本,我們期望收到你的反饋以便帶來更完善的正式版本。

  在這篇文章中,我會向你展示在這個釋出版本下如何完成你的測試用例。步驟如下:

  1. 安裝SDK
  2. 建立類庫專案
  3. 新增MSTest的引用
  4. 寫測試用例
  5. 從Visual Studio中執行測試
  6. 從命令列視窗執行測試
  7. 以桌面.NET 為目標

安裝SDK

  從Visual Studio 官方下載安裝包

建立類庫專案

  建立一個.NET Core 類庫專案

新增MSTest的引用

  • 在nuget.org中找到MSTest.TestFramework並安裝

  • 在nuget.org中找到dotnet-test-mstest並安裝

    開啟project.json檔案,你可以看到已經安裝在依賴項中的包,我們需要新增“testRunner”屬性並設定為“mstest”。為了簡單,可以直接替換下面的內容到project.json檔案中:

    {
        "version": "1.0.0-*",
    
        "testRunner": "mstest",
    
        "dependencies": {
            "dotnet-test-mstest": "1.0.1-preview",
            "MSTest.TestFramework": "1.0.0-preview"
        },
    
        "frameworks": {
            "netcoreapp1.0": {
            "imports": [
                "dnxcore50",
                "portable-net45+win8"
            ],
        
            "dependencies": {
                "Microsoft.NETCore.App": {
                "version": "1.0.0-rc2-3002702",
                "type": "platform"
                }
            }
            }
        }
    }
    

    可以注意到,我們建立的專案被標記為一個應用程式(netcoreapp1.0)。那是因為在測試時使用.NET CLI,單元測試工程就是一個應用程式,而不是一個類庫。這個程式的入口Main方法將由“testRunner”提供。

動手寫用例

  Visual Studio已自動建立一個叫Class1.cs的檔案,開啟它,替換裡面的內容如下:

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace SampleNetCoreUnitTests
{
  [TestClass]
  public class TestClass
  {
    [TestMethod]
    public void TestMethodPassing()
    {
      Assert.IsTrue(true);
    }

    [TestMethod]
    public void TestMethodFailing()
    {
      Assert.IsTrue(false);
    }
  }
}

從Visual Studio 執行測試

  開啟測試瀏覽視窗(測試|視窗|測試瀏覽視窗),重新生成解決方案,你將在測試瀏覽視窗中看到如下內容:


3797511-0e9222be92381ec7.png
image.png

點選“全部執行”:


3797511-9a2319e0cc49d28d.png
image.png

從Console視窗執行測試

  開啟命令列視窗並定位到解決方案資料夾。輸入dotnet test 執行.NET CLI測試執行器:

D:\Samples\dotNetCoreTests\src\dotNetCoreTests>dotnet test
Project dotNetCoreTests (.NETFramework,Version=v4.5.1) was previously compiled. Skipping compilation.
Discovering Tests ...
Executing Tests ...
Passed   TestMethodPassing
Failed   TestMethodFailing
Error Message:
   Assert.IsTrue failed.
Stack Trace:
   at SampleNetCoreUnitTests.TestClass.TestMethodFailing() in D:\Samples\dotNetCoreTests\src\dotNetCoreTests\Class1.cs:line 17
============ Test Run Summary ============
Total tests: 2. Passed: 1. Failed: 1. Skipped: 0
Test Run Failed.
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.

測試按照預期執行了。

以桌面.NET 為目標

  
除了.NET Core,.NET CLI執行器也支援桌面.NET程式(v4.5.1及以上),需要在project.json中更新類庫部分:

"frameworks": {
  "net451": { }
}

總結

OK,MSTest支援.NET Core 1.0 RC2 和 ASP.NET Core 1.0 RC2 就是這麼簡單,整個都整合在了Visual Studio中。

強烈建議閱讀英文原文



2017-11-06 22:20:31

相關文章