我正在构建一个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框架。 –
不应该是一个问题。这就是我在解决方案中所做的。你可以发布你的测试课吗?他们是公共方法,公共方法标有'事实'或同等权利? –