在用.netcoreapp 3.1构建nunit项目时,我似乎遇到了这个错误,并且我不知道我有什么不匹配的版本。我注意到这里有一个类似的帖子,但有一个不同之处,它说我应该有一个Nunit和UnitTestAdapter版本3.9.0,但是VS不允许我回滚,我也不知道我为什么要回滚。安装我的解决方案时出错的是:
如有任何帮助试图解决此错误,将不胜感激?
Package 'NUnitTestAdapter.WithFramework 2.0.0' was restored using '.NETFramework,Version=v4.6.1,
.NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1,
.NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'.
This package may not be fully compatible with your project. 当我有最新的软件包时,NUnitTestAdapter.WithFramework 2.0.0如何与项目不兼容?
我的test.csproj是:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<None Remove="App1.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Chromium.ChromeDriver" Version="2.37.0" />
<PackageReference Include="Dapper" Version="2.0.90" />
<PackageReference Include="DapperExtensions" Version="1.7.0" />
<PackageReference Include="DotNetSeleniumExtras.WaitHelpers" Version="3.11.0" />
<PackageReference Include="ExtentReports" Version="4.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" />
<PackageReference Include="NUnit" Version="3.13.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="NUnitTestAdapter.WithFramework" Version="2.0.0" />
<PackageReference Include="RestSharp" Version="106.11.7" />
<PackageReference Include="Selenium.Chrome.WebDriver" Version="85.0.0" />
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
<PackageReference Include="SpecFlow" Version="3.8.7" />
<PackageReference Include="SpecFlow.Assist.Dynamic" Version="1.4.2" />
<PackageReference Include="SpecFlow.NUnit" Version="3.8.7" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.8.7" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
<PackageReference Include="WebDriverChromeDriver" Version="2.10.0" />
</ItemGroup>发布于 2021-07-22 13:59:04
NUnitTestAdapter.WithFramework 2.0.0是一个.net framework包(仅由NUnit 2.6支持),您正在创建一个.net 核心应用程序。
考虑到NUnitTestAdapter.WithFramework的上一次更新与VS2015有关,我建议您找到一个不同的包。
我想知道您是否选择了错误的NUnit测试适配器。
发布于 2021-07-22 14:09:29
根本不用那个包裹。作为它的描述说,它只适用于在Visual 2012中运行的NUnit2项目。NUnit 2至少5岁。
NUnit文档站点解释了如何在.NET Core中使用.NET核心与.NET标准。添加NUnit、NUnit3TestAdapter和Microsoft.NET.Test.Sdk的最新版本。
在您的csproj文件中,应该添加:
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="NUnit" Version="3.9.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.9.0" />
</ItemGroup>之后,您可以在Visual或命令行中使用以下内容运行测试:
dotnet test更新
看起来您的csproj已经有了正确的包。在这种情况下,只需删除过时的包即可。
发布于 2021-12-20 13:51:58
@Neil的尖刻文章很好地解释了这一点。确保您的项目目标是.Net核心3.x框架或更高。如果它是基于.NET标准的项目,那么单元测试就不会运行。在这里,它说:
https://stackoverflow.com/questions/68486089
复制相似问题