首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Nunit测试适配器框架与.netcore 3.1一起工作

如何使Nunit测试适配器框架与.netcore 3.1一起工作
EN

Stack Overflow用户
提问于 2021-07-22 13:54:43
回答 3查看 850关注 0票数 0

在用.netcoreapp 3.1构建nunit项目时,我似乎遇到了这个错误,并且我不知道我有什么不匹配的版本。我注意到这里有一个类似的帖子,但有一个不同之处,它说我应该有一个Nunit和UnitTestAdapter版本3.9.0,但是VS不允许我回滚,我也不知道我为什么要回滚。安装我的解决方案时出错的是:

如有任何帮助试图解决此错误,将不胜感激?

代码语言:javascript
复制
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是:

代码语言:javascript
复制
<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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-07-22 13:59:04

NUnitTestAdapter.WithFramework 2.0.0是一个.net framework包(仅由NUnit 2.6支持),您正在创建一个.net 核心应用程序。

考虑到NUnitTestAdapter.WithFramework的上一次更新与VS2015有关,我建议您找到一个不同的包。

我想知道您是否选择了错误的NUnit测试适配器。

票数 2
EN

Stack Overflow用户

发布于 2021-07-22 14:09:29

根本不用那个包裹。作为它的描述说,它只适用于在Visual 2012中运行的NUnit2项目。NUnit 2至少5岁。

NUnit文档站点解释了如何在.NET Core中使用.NET核心与.NET标准。添加NUnitNUnit3TestAdapterMicrosoft.NET.Test.Sdk的最新版本。

在您的csproj文件中,应该添加:

代码语言:javascript
复制
<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或命令行中使用以下内容运行测试:

代码语言:javascript
复制
dotnet test

更新

看起来您的csproj已经有了正确的包。在这种情况下,只需删除过时的包即可。

票数 0
EN

Stack Overflow用户

发布于 2021-12-20 13:51:58

@Neil的尖刻文章很好地解释了这一点。确保您的项目目标是.Net核心3.x框架或更高。如果它是基于.NET标准的项目,那么单元测试就不会运行。在这里,它说:

  • .NET标准就像一个便携库,因为它不针对任何特定的平台,而是可以在任何受支持的平台上运行。微软决定,你的测试应该被编译成针对一个平台,这样他们就知道在哪个平台上运行你的测试,你就可以得到你期望的目标平台的行为。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68486089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档