ITestContainerDiscoverer在Visual Studio 2015中不工作

本文关键字:工作 2015 Studio Visual ITestContainerDiscoverer | 更新日期: 2023-09-27 18:29:34

我有一个Visual Studio Unittest适配器,到目前为止它在Visual Studio 2013中运行良好。使用自定义命令ctest -N提取测试,因此需要ITestContainerDiscoverer的实现。

您可以在此处查看该项目:https://github.com/micst/CTestTestAdapter

看起来,Visual Studio 2015只是忽略ITestContainerDiscoverer实现,或者至少从不实例化和使用它。如果我从项目中删除容器发现程序,并将默认文件扩展名.dll.exe添加到ITestDiscoverer,那么VSIX通常是正确安装和工作的。

如何执行ITestContainerDiscoverer

ITestContainerDiscoverer在Visual Studio 2015中不工作

好的,经过一些(重新)搜索,我设法解决了我的问题:

1.

有一个适用于VS2015的XML文件的单元测试适配器示例,因此我能够找到我的问题:http://blogs.msdn.com/b/bhuvaneshwari/archive/2012/03/13/authoring-a-new-visual-studio-test-adapter.aspx

2.

我的ITestContainerDiscoverer的构造函数的签名似乎是错误的。虽然我最初的测试容器发现器有一个没有任何参数的构造函数,但XML示例中使用的构造函数使用了一堆参数。经过一些测试,您似乎至少需要一个IServiceProvider作为构造函数参数:

public CTestContainerDiscoverer(
    [Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider)
    {

不知道为什么,但我认为这解决了问题。事实上,unittest适配器接口的文档有多糟糕,真是令人难过。