Vs2019 无法运行 NUnit 测试 - 'testhost.x86.exe' 的问题
Posted
技术标签:
【中文标题】Vs2019 无法运行 NUnit 测试 - \'testhost.x86.exe\' 的问题【英文标题】:Vs2019 cannot run NUnit Tests - Issue with 'testhost.x86.exe'Vs2019 无法运行 NUnit 测试 - 'testhost.x86.exe' 的问题 【发布时间】:2020-01-24 13:46:51 【问题描述】:我使用 NUnit 创建了一个 selenium 测试框架,有一个测试可以打开页面并断言页面标题。
但是,当我尝试运行测试时,它似乎启动和停止,甚至没有执行任何操作,甚至使用 Debug 运行。测试保持在not run
状态。
当我在 上设置一个断点并使用调试运行测试时,没有任何变化。它在不运行测试的情况下启动并立即停止。
测试:
[Test]
[TestCase(Browser.Chrome)]
public void ValidateWebDriverLaunches(Browser browser)
Driver = StaticWebDriverFactory.GetLocalWebDriver(browser);
Driver.Url = "https://example.com/";
string title = Driver.Title;
Assert.AreEqual(true, title.Contains("Example Domain"), "Title is not matching");
错误日志
'testhost.x86.exe' (CLR v4.0.30319: Domain 2): Unloaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'
'testhost.x86.exe' (CLR v4.0.30319: Dependency finder domain): Unloaded 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\TestPlatform\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll'
The thread 0xcc has exited with code 0 (0x0).
'testhost.x86.exe' (CLR v4.0.30319: Domain 3): Unloaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'
'testhost.x86.exe' (CLR v4.0.30319: Dependency finder domain): Unloaded 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\TestPlatform\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll'
The thread 0x2f90 has exited with code 0 (0x0).
The thread 0x2f80 has exited with code 0 (0x0).
The program '[8948] testhost.x86.exe' has exited with code 0 (0x0).
我已经设置了环境变量
__UNITTESTEXPLORER_VSINSTALLPATH__
指向
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE
正如一些人所建议的那样。我发现的唯一其他建议是更新 VS17,但是我使用的是 VS19,找不到有关此版本的任何信息。
【问题讨论】:
你用的是哪个版本的VS2019? 呵呵,“程序 '[8948] testhost.x86.exe' 已退出,代码为 0 (0x0)。”根据thisMS Doc页面错误代码0为“ERROR_SUCCESS”,表示成功。 @MindSwipe。我使用的是 16.3.0 版。这很奇怪,因为测试似乎没有运行。我没有在测试资源管理器中获得测试成功或失败。 奇怪,你安装了 ReSharper 吗?另外,您可以尝试右键单击您的解决方案并清理然后重建它吗?然后尝试在您的测试方法中放置一个断点并在调试模式下运行 UniTests @MindSwipe 我没有 ReSharper。我在
上设置了一个断点,并且测试不会在断点处停止。
【参考方案1】:
我发现问题出在我自己身上。
我安装了NUnit3TestAdapter
nuget 包,它现在按预期工作。
【讨论】:
【参考方案2】:需要将Visual Studio中的进程架构切换到64。
Visual Studio:测试选项卡 -> AnyCPU 项目的进程架构 -> 64
【讨论】:
【参考方案3】:我的问题真的很奇怪,我在 AppConfig 中的连接字符串在 上面,将它移到下面解决了我的问题。
【讨论】:
【参考方案4】:在寻求解决方案的过程中,我发现了这个提示来帮助了解过早退出发生了什么:
转到测试/选项并将日志记录级别设置为“跟踪(包括平台日志)。
在跟踪中,它说“NUnit 无法从 nuget 包引用加载 c:\...\netcoreapp3.1。NUnit 测试适配器 3.16.1 的下一步记录了测试执行完成,即使没有测试已运行。会不会是我们的 Nuget 包不包含 netcore?会回发
【讨论】:
【参考方案5】:我遇到了完全相同的问题,我尝试运行 UT,但它没有启动,在输出窗口中我看到的只是上述错误。 我解决问题的方法:
然后检查您的项目是否在构建字段中检查,如果没有,请标记它。
【讨论】:
以上是关于Vs2019 无法运行 NUnit 测试 - 'testhost.x86.exe' 的问题的主要内容,如果未能解决你的问题,请参考以下文章
Azure Devops Visual Studio 测试任务无法发现具有 TestCaseSource 属性的 Nunit 测试