我想调试我自己的vstest Adapter。我正在努力将我自己的测试框架/用例集成到VS 2022中。目前,我的适配器在Test上工作,我可以在上面看到我的虚拟案例。但是,我不知道如何调试到Adapter的代码中。
[DefaultExecutorUri("executor://XmlTestExecutor")]
class TestDiscoverer : ITestDiscoverer
{
void ITestDiscoverer.DiscoverTests(IEnumerable<string> containers, IDiscoveryContext discoveryContext,
IMessageLogger logger, ITestCaseDiscoverySink discoverySink)
{
logger.SendMessage(TestMessageLevel.Informational, "Start discovery");
var test = new TestCase(
"Assembly.Class.Method",
new Uri("discoverer://compatTestDiscoverer"),
@"D:\Code\HelloTestUnit\bin\Debug\net6.0\HelloTestUnit.dll");
test.DisplayName = "Sample test case";
test.CodeFilePath = @"D:\Code\HelloTestUnit\UnitTestA.cs";
discoverySink.SendTestCase(test);
}
}我已附加到vstest.console.exe进程进行调试,但vstest.console.exe似乎无法使用我的适配器,也找不到我的情况。
set VSTEST_RUNNER_DEBUG=1
set VSTEST_HOST_DEBUG=1
vstest.console.exe HelloTestUnit.dll /ResultsDirectory:d:\test /TestAdapterPath:VS.TestAdapter.dll发布于 2022-06-27 17:55:20
有关诊断https://github.com/microsoft/vstest-docs/blob/2e7becf3dae2e98b766772845e13c4038a5f6fbe/docs/diagnose.md问题的文档,请参阅VSTest。
应该将/TestAdapterPath开关设置为包含适配器的文件夹,而不是适配器DLL本身。
适配器的代码不会在vstest.console.exe进程本身中运行。它将在testhost.exe、testhost.*.exe或可能的"dotnet testhost.dll“中运行,具体取决于框架和体系结构配置。这个过程将从VSTest.Console.exe启动。
https://stackoverflow.com/questions/72761789
复制相似问题