从 VS 调试器而不是测试资源管理器调试 NUnit dotnet 测试运行

问题描述 投票:0回答:1

TL;DR 是否有相当于 NUnit 的

dotnet test
开关?
因为使用正常的 VS 调试体验 (F5) 来运行 

--inprocess

dotnet
 test
 不允许调试测试。


我们的测试是用 NUnit 3 编写的。 我们目前正在将项目从 .NET Framework 4.8 迁移到 .NET 6。

由于通过

StartProgram

 运行测试并不总是有效(例如 
https://github.com/nunit/nunit-console/issues/1253),我们还将运行器迁移到 nunit3-console.exe
,目前它可以更无缝地工作我们。

但是,我们的开发人员过去可以自由地按照他们想要的方式调试他们的测试。有些人使用 VS 测试资源管理器,其他人使用普通的 VS 调试器和“F5”,启动设置约为。 dotnet test

现在的问题是,我无法找到任何方法来调试从 VS GUI 中以

nunit3-console.exe --inprocess some.test.dll

 开始的 NUnit 测试。

我发现:

How to debug dotnet test in VS Code? 建议设置 <StartProgram>dotnet test

,但是 (a) 你无法使用 csproj 
VSTEST_HOST_DEBUG=1
 设置环境变量,并且 (b) 它似乎无法与 NUnit 一起使用.

我想要:

    在我的 NUnit 3 测试代码中设置断点
  • 从 Visual Studio 调试器“F5”将所有测试作为“常规”程序运行
  • 在我的断点处闯入程序
我可以用

StartProgram

 做到这一点——这可以用 
nunit-console.exe --inprocess
 实现吗?

c# visual-studio nunit nunit-console dotnet-test
1个回答
0
投票
据说,这是不可能的

dotnet test

不幸的是,即使

dotnet test

在进程中运行,它也会产生一个
dotnet test
 运行您的测试。设置 
testhost.exe
 只是告诉
VSTEST_HOST_DEBUG
 等待手动连接调试器。 - 
NPras

因此,情况类似于 NUnit(控制台运行程序)提供/通过

testhost.exe

 开关提供的内容。

© www.soinside.com 2019 - 2024. All rights reserved.