我想调试我自己的vest适配器。我正在努力将我自己的测试框架/用例集成到VS 2022中。目前,我的适配器在Test Explorer上工作,我可以在上面看到我的虚拟案例。但是,我不知道如何调试适配器的代码。
[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:CodeHelloTestUnitbinDebugnet6.0HelloTestUnit.dll");
test.DisplayName = "Sample test case";
test.CodeFilePath = @"D:CodeHelloTestUnitUnitTestA.cs";
discoverySink.SendTestCase(test);
}
}
我已经连接到vest .console.exe进程调试,但vest .console.exe似乎不能使用我的适配器,我的情况下找不到。
set VSTEST_RUNNER_DEBUG=1
set VSTEST_HOST_DEBUG=1
vstest.console.exe HelloTestUnit.dll /ResultsDirectory:d:test /TestAdapterPath:VS.TestAdapter.dll
请参阅https://github.com/microsoft/vstest-docs/blob/2e7becf3dae2e98b766772845e13c4038a5f6fbe/docs/diagnose.md获取诊断VSTest问题的文档。
/TestAdapterPath开关应该设置为包含适配器的文件夹,而不是适配器DLL本身。
适配器的代码将不会在vest .console.exe进程本身中运行。它将运行在testhostst .exe, testhostst .*.exe或可能的&;dotnet exec testhostst .dll&;中,这取决于框架和架构配置。此进程将从vest . console .exe启动。