Xunit单元测试将无法运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xunit单元测试将无法运行相关的知识,希望对你有一定的参考价值。
我完全卡在这个问题上。我的团队在一个服务测试项目中有一个单元测试项目。测试是在测试资源管理器窗格中发现的,但是当我尝试运行测试时,我得到了这些错误。
'发现多个测试适配器具有相同的 uri 'executor:/xunitVsTestRunner2' 。忽略适配器'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'。请卸载冲突的适配器以避免此警告。
'[xUnit.net 00:00:00.0251250] Skipping: (无法找到依赖性程序集'Microsoft.Extensions.DependencyModel, Version=1.1.0')' 。
'C:中没有测试可用。确保测试发现者&执行者已注册,平台&框架版本设置合适,再试一次'。
上下文信息。
- Xunit 2.2.0
- Visual Studio 15.5.2
- Windows 10 1709 Build.Xunit 2.2.0 Visual Studio 15.5.2 16299.125
我的测试项目project.json。
{
"version": "1.0.0-*",
"testRunner": "xunit",
"dependencies": {
"dotnet-test-xunit": "2.2.0-preview2-build1029",
"Microsoft.AspNetCore.Mvc.ViewFeatures": "1.1.3",
"Microsoft.DiaSymReader": "1.0.8",
"Microsoft.DiaSymReader.Native": "1.4.1",
"Microsoft.Extensions.Logging.Abstractions": "1.1.2",
"Microsoft.Extensions.Testing.Abstractions": "1.0.0-preview2-003121",
"Newtonsoft.Json": "9.0.1",
"WebServices": "1.0.0-*",
"xunit": "2.2.0",
"xunit.abstractions": "2.0.1",
"xunit.assert": "2.2.0",
"xunit.core": "2.2.0",
"xunit.extensibility.core": "2.2.0",
"xunit.extensibility.execution": "2.2.0",
"xunit.runner.utility": "2.2.0"
},
"frameworks": {
"net461": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0"
}
}
}
奇怪的是,它对我的团队成员有效。但我却不行。我们的环境差异在于:Windows和Visual Studio的最新更新,而他们落后一两个更新。
有人知道有什么解决方法吗?
我有同样的问题,我通过将Visual Studio 2017从15.5.2更新到15.5.4并将我的测试项目引用从更新。
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
更新为:
<ItemGroup>
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
</ItemGroup>
并重新启动Visual Studio(显然VS会缓存并使用以前的版本,即使你已经更新了)。
不知道是这3件事中的一件还是它们的组合解决了问题。
安装或更新 "xunit.runner.visualstudio "包对我来说是个好办法。 在这之前,它不能与框架462一起工作。
我遇到了同样的问题,但我已经安装了Visual Studio 2017 15.5.4。为了使其工作,我更新了所有的 xunit
相关的引用,现在我的.csproj相关引用看起来是这样的。
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
我不太确定是什么地方出了问题,但我的建议是确保这些参考资料在csproj中,并且有这些最低版本。
我的问题和你的类似,指出 could not find dependent assembly
事实上,该程序集是存在的,并且可以被xUnit VS运行器使用。然而,实际的问题是,我把Visual Studio设置成使用了 "XUnit"。32bit
测试运行程序默认为xUnit。它找不到的 "依赖性程序集 "只是因为使用的处理器架构与xUnit测试运行程序不同。
为了解决这个问题,如前所述 此处在Visual Studio菜单中,进入 Test -> Test Settings -> Default Processor Architecture
并将其设为 X64
如果你正在使用 64bit
组件,或 X86
如果你正在使用 32bit
汇编。xUnit VS runner给出的错误是非常具有误导性的,试图调试这个问题。
这个问题我是在新机器上安装Visual Studio时看到的。测试可以在我的台式机上的Visual Studio中运行,但在我的笔记本电脑上却不能。
关闭并重新打开Visual Studio对我有效。
以上是关于Xunit单元测试将无法运行的主要内容,如果未能解决你的问题,请参考以下文章
在 VS 2017 中针对完整的 .net 框架 asp.net 核心项目运行 XUnit 2.2.0 单元测试时出现 System.BadImageFormatException