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
相關文章
- 【譯】Announcing Entity Framework Core 5.0 Preview 5FrameworkView
- 【譯】ASP.NET Core updates in .NET 5 Preview 8ASP.NETView
- ASP.NET Core OData 9的釋出,放棄 .NET FrameworkASP.NETFramework
- ASP.NET 6.0 Core 遷移 ASP.NET Core 7.0ASP.NET
- ASP.NET Core ----ASP.NET Core中使用Code FirstASP.NET
- 【譯】在 ASP.NET 和 ASP.NET Core 之間共享程式碼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
- .NET MAUI RC2 釋出,支援 Tizen 平臺UI
- 翻譯 - ASP.NET Core 託管和部署 - 在 Linux 上使用 Nginx 託管 ASP.NET Core 網站ASP.NETLinuxNginx網站
- [翻譯]ASP.NET Core在 .NET 5 Preview 7的更新ASP.NETView
- 【譯】ASP.NET Core 6 中的效能改進ASP.NET
- 翻譯 - ASP.NET Core 基本知識 - 配置(Configuration)ASP.NET
- Asp.Net Core SwaggerUI 接入ASP.NETSwaggerUI
- asp.net core 整合JWTASP.NETJWT
- asp.net core 整合 PrometheusASP.NETPrometheus
- ASP.NET Core - 開篇ASP.NET
- 【asp.net core 系列】 1 帶你瞭解一下asp.net coreASP.NET
- 回顧.NET系列:Framework、Net Core、Net 過往Framework
- 【譯】.NET 7 預覽版 1 中的 ASP.NET Core 更新ASP.NET
- ASP.Net Core5.0 EF Core使用記錄ASP.NET
- ASP.NET Core系列(二):建立第一個.Net Core 專案ASP.NET
- 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入門ASP.NETIDEServer
- ASP.NET Core - 入口檔案ASP.NET
- ASP.NET Core - IStartupFilter 與 IHostingStartupASP.NETFilter
- 【ASP.NET Core】URL重寫ASP.NET
- 理解ASP.NET Core - [04] HostASP.NET
- 理解ASP.NET Core - [02] MiddlewareASP.NET
- asp.net core 整合swagger uiASP.NETSwaggerUI
- 理解ASP.NET Core - 配置(Configuration)ASP.NET
- asp.net core 系列之ConfigurationASP.NET
- ASP.NET Core 配置檔案ASP.NET
- asp.net core 系列之StartupASP.NET
- 理解ASP.NET Core - [01] StartupASP.NET
- ASP.NET Core WebApi版本控制ASP.NETWebAPI
- Asp.NET Core 限流控制-AspNetCoreRateLimitASP.NETNetCoreMIT
- ASP.NET Core 啟動(1)ASP.NET