在使用 .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>
答案 0 :(得分:1)
NUnitTestAdapter.WithFramework 2.0.0 是 .net framework 包(仅 NUnit 2.6 支持),您正在创建 .net core 应用程序.
鉴于 NUnitTestAdapter.WithFramework 的最后一次更新与 VS2015 相关,我建议您找到不同的包。
不知道您是否刚刚选择了错误的 NUnit 测试适配器。
答案 1 :(得分:0)
根本不要使用那个包。作为 its description says,它仅适用于在 Visual Studio 2012 中运行的 NUnit2 项目。NUnit 2 至少已有 5 年历史。
NUnit 文档站点解释了如何在 .NET Core and .NET Standard 中的 .NET Core 中使用 NUnit。添加最新版本的 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 Studio 或命令行中运行测试:
dotnet test
更新
看起来您的 csproj
已经拥有正确的软件包。在这种情况下,您只需要删除过时的包