Announcing MSTest Framework support for .NET Core RC2 / ASP.NET Core RC2[譯]
.NET Core RC2 和 ASP.NET Core RC2 已在幾周之前釋出,它包含了.NET CLI的介紹,對.NET Core SDK(以前叫 DNX)的改動,ASP.NET 5到ASP.NET Core的進化等,更多特性可以參考.NET 團隊部落格和.NET WEB開發團隊部落格。
而現在,我們很興奮的宣佈,MSTest類庫也支援這個釋出版本啦!相關類庫和依賴包都可以在NuGet上獲取。這次是預釋出版本,我們期望收到你的反饋以便帶來更完善的正式版本。
在這篇文章中,我會向你展示在這個釋出版本下如何完成你的測試用例。步驟如下:
- 安裝SDK
- 建立類庫專案
- 新增MSTest的引用
- 寫測試用例
- 從Visual Studio中執行測試
- 從命令列視窗執行測試
- 以桌面.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 執行測試
開啟測試瀏覽視窗(測試|視窗|測試瀏覽視窗),重新生成解決方案,你將在測試瀏覽視窗中看到如下內容:
點選“全部執行”:
從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
相關文章
- 解讀釋出:.NET Core RC2 and .NET Core SDK Preview 1View
- 【譯】Announcing Entity Framework Core 5.0 Preview 5FrameworkView
- .NET Core釋出在即,我們試著用記事本編寫一個ASP.NET Core RC2 MVC程式ASP.NETMVCC程式
- ASP.NET Core 開發 - Entity Framework (EF)ASP.NETFramework
- [譯]ASP.NET Core 2.0 路由引擎ASP.NET路由
- [譯]ASP.NET Core 2.0 區域ASP.NET
- 【譯】ASP.NET Core updates in .NET 5 Preview 8ASP.NETView
- ASP.NET Core ----ASP.NET Core中使用Code FirstASP.NET
- ASP.NET 6.0 Core 遷移 ASP.NET Core 7.0ASP.NET
- ASP.NET Core OData 9的釋出,放棄 .NET FrameworkASP.NETFramework
- [譯]ASP.NET Core 2.0 依賴注入ASP.NET依賴注入
- [譯]ASP.NET Core 2.0 中介軟體ASP.NET
- [譯]ASP.NET Core 2.0 檢視引擎ASP.NET
- [譯]ASP.NET Core 2.0 部分檢視ASP.NET
- [譯]ASP.NET Core 2.0 檢視元件ASP.NET元件
- .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介ASP.NET
- [譯]ASP.NET Core 2.0 網址重定向ASP.NET
- [譯]ASP.NET Core 2.0 本地檔案操作ASP.NET
- [譯]ASP.NET Core 2.0 會話狀態ASP.NET會話
- [譯]ASP.NET Core 2.0 機密配置項ASP.NET
- [譯] 在 ASP.NET Core 中使用 SignalRASP.NETSignalR
- [譯]ASP.NET Core 2.0 全域性配置項ASP.NET
- [譯]ASP.NET Core 2.0 佈局頁面ASP.NET
- 【asp.net core 系列】14 .net core 中的IOCASP.NET
- ASP.NET Core Web API 索引 (更新Redis in .NET Core)ASP.NETWebAPI索引Redis
- 在ASP.NET Core中用HttpClient(六)——ASP.NET Core中使用HttpClientFactoryASP.NETHTTPclient
- 【譯】在 ASP.NET 和 ASP.NET Core 之間共享程式碼ASP.NET
- ASP.NET Core: 全新的ASP.NET !ASP.NET
- 【譯】ASP.NET Core 6 中的效能改進ASP.NET
- [譯]ASP.NET Core 2.0 系列文章目錄ASP.NET
- .NET MAUI RC2 釋出,支援 Tizen 平臺UI
- [翻譯]ASP.NET Core在 .NET 5 Preview 7的更新ASP.NETView
- ASP.NET 5 已終結,迎來 ASP.NET Core 1.0 和 .NET Core 1.0ASP.NET
- ASP.NET Core - 開篇ASP.NET
- asp.net core 整合JWTASP.NETJWT
- asp.net core 整合 PrometheusASP.NETPrometheus
- 翻譯 - ASP.NET Core 託管和部署 - 在 Linux 上使用 Nginx 託管 ASP.NET Core 網站ASP.NETLinuxNginx網站
- 【asp.net core 系列】 1 帶你瞭解一下asp.net coreASP.NET