我正在構建一個ASP.NET核心Web應用程序(.Net Framework),並且很難弄清楚如何掛鉤單元測試。我的目標是.net框架版本4.6.1你如何測試ASP.NET核心Web應用程序(.Net Framework)?
如果我創建一個定向4.6.1的常規「類庫」項目,就像我以前版本的MVC一樣,它允許我添加對我的MVC項目的引用是同一解決方案的一部分),但通過using
語句添加的任何名稱空間都會報告可能缺少引用或使用語句的錯誤。如果我雙擊解決方案資源管理器中「引用」部分下的引用,它會告訴我該項目無法找到或尚未構建。
我試着創建一個「類庫(.NET核心)」,但抱怨因爲我的目標.net框架,而不是.net核心。我編輯了類庫lib Project.json,讓它定位到.net框架,並且允許我添加我的引用並且不會在我聲明using
語句中的命名空間時發出抱怨,但是我的測試沒有被測試運行器發現。我已經嘗試了XUnit和NUnit,它們的表現都一樣。
是否有可能單元測試針對.Net Framework 4.6.1的ASP.Net Core Web應用程序,還是需要提交到.NET Core?
編輯添加我的測試類 這裏是我的測試課被剝離到最低限度。 TestBank.Services是我想要測試的類。
using System;
using TestBank.Services;
using Xunit;
namespace TestBankUnitTests
{
public class Class1
{
[Fact]
public void TestA()
{
Assert.True(false);
}
}
}
,這裏是我的project.json
{
"version": "1.0.0-*",
"dependencies": {
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-build10025",
"TestBank": "1.0.0-*"
},
"frameworks": {
"net461": {
}
}
}
單元測試發現是相當挑剔的。我發現我必須有一個只包含.net核心項目的項目的解決方案,否則它不會找到測試。例如,我有一個.core核心mvc應用程序和一個.core庫以及我的測試,第三個項目只是一個類庫(而不是.net核心)。由於某種原因,VS在我從解決方案中刪除非核心庫之前無法發現測試。 –
現在,我的解決方案只有MVC項目和.net核心類庫(已修改爲以.Net Framework 4.6.1爲目標),並且沒有發現測試。這讓我懷疑測試發現是否僅適用於真正的.net核心,而不適用於.net核心,適用於.net框架。 –
不應該是一個問題。這就是我在解決方案中所做的。你可以發佈你的測試課嗎?他們是公共方法,公共方法標有'事實'或同等權利? –