ITestContainerDiscoverer 在 Visual Studio 2015 年不工作
ITestContainerDiscoverer not working in Visual Studio 2015
我有一个 Visual Studio Unittest-Adapter,到目前为止,它在 Visual Studio 2013 中运行良好。使用自定义命令 ctest -N
提取测试,因此需要 ITestContainerDiscoverer
的实现。
您可以在此处查看项目:https://github.com/micst/CTestTestAdapter
看起来,Visual Studio 2015 只是简单地忽略了 ITestContainerDiscoverer
实现 或者至少从不实例化和使用它。如果我从我的项目中删除容器发现器并将默认文件扩展名 .dll
和 .exe
添加到 ITestDiscoverer
,那么 VSIX 通常已正确安装并正常工作。
如何让 ITestContainerDiscoverer
被执行?
好的,经过一些(重新)搜索我设法解决了我的问题:
1.
有一个适用于 XML 文件的单元测试适配器示例可以在 VS2015 上运行,所以我能够找到我的问题: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 适配器接口的文档有多糟糕,这实际上是非常可悲的。
我有一个 Visual Studio Unittest-Adapter,到目前为止,它在 Visual Studio 2013 中运行良好。使用自定义命令 ctest -N
提取测试,因此需要 ITestContainerDiscoverer
的实现。
您可以在此处查看项目:https://github.com/micst/CTestTestAdapter
看起来,Visual Studio 2015 只是简单地忽略了 ITestContainerDiscoverer
实现 或者至少从不实例化和使用它。如果我从我的项目中删除容器发现器并将默认文件扩展名 .dll
和 .exe
添加到 ITestDiscoverer
,那么 VSIX 通常已正确安装并正常工作。
如何让 ITestContainerDiscoverer
被执行?
好的,经过一些(重新)搜索我设法解决了我的问题:
1.
有一个适用于 XML 文件的单元测试适配器示例可以在 VS2015 上运行,所以我能够找到我的问题: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 适配器接口的文档有多糟糕,这实际上是非常可悲的。