从基于.NET 4.7.1的C#测试项目中定位.NET Core 2.0.1 Web项目

时间:2018-07-12 23:19:10

标签: unit-testing visual-studio-2017 tdd asp.net-core-2.0 .net-4.7.1

我从Visual Studio 2017 Enterprise的测试驱动开发开始,但是不管如何(无论我多么努力),都无法使其正常运行。我尝试在WWW上的任何地方拖网搜索以寻求解决方案,但无济于事。因此,我希望这里有人能够提供帮助。问题如下:

我已经创建了一个ASP.NET Core Web应用程序和一个单独的Test项目;我使用NUnit作为测试框架(我首先使用xUnit,但是由于某种原因,测试消失了并且无法运行)。无论如何,当我尝试从测试项目中引用我的ASP.NET Core Web应用程序时,会出现以下错误:

项目'.. \ MyProject \ MyProject.csproj'目标为'netcoreapp2.1'。面向'.NETFramework,Version = v4.7'的项目无法引用它。 UnitTestProject1

有人对什么是错误以及如何解决有任何线索吗?任何帮助将不胜感激。

最诚挚的问候。

编辑

我在这里详细说明了这个问题。我尝试在下面说明。我已附上3张图片以显示我的意思。

首先,当我想在Visual Studio中创建测试项目时,请转到“测试”模板-在这里,我仅看到图2中所示的模板。 1-可以在下拉列表中所示的不同.N​​ET版本之间进行选择。无论我选择哪一个,我都会收到我先前的文章中提到的错误。

然后,我尝试使用.NET Core模板,在其中发现了两种类型的测试项目:MSTest和xUnit测试(请参见图2)。在我的情况下,MSTest不可用,因为对于此确切的应用程序来说,它有点受限制。因此,我尝试使用xUnit测试项目。但是,当我这样做时,系统会抱怨缺少各种库,并且在解决方案资源管理器中的“ Dependencies”部分中查看时,所有库都显示有黄色的“ Warning”三角形(见图3)。 ,什么都不会编译。

所以我有点卡住了。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

测试项目针对.NET Framework 4.7,而Web项目针对.NET Core App 2.1。

您不能将引用从一个添加到另一个,因为它们不兼容。

要解决此问题,您应该创建一个针对netcoreapp2.1的测试项目,并将引用添加到Web项目中。