【发布时间】:2014-02-08 12:43:47
【问题描述】:
我正在尝试为 Visual Studio 2013 编写一个测试适配器(我正在使用 Update 1 运行 Premium,并且安装了 VS SDK,因此我可以引用所有 VS DLL)。因为它将处理原始内容文件而不是编译的 dll/exe,看来我需要创建一个 ITestContainerDiscoverer。
我在网上找到了一些似乎已经实现了这些的公共回购;例如:
TypeScript、Json、Node、and many more
但是;我的代码似乎是相同的(以及对 VS DLL 的相同引用),但似乎从未触发。我已经添加了 File.Write、Console.WriteLine、Debuuger.Launch,并且还附加了另一个 VS 实例。这是我的班级目前的样子:
[Export(typeof(ITestContainerDiscoverer))]
public class MyTestContainerDiscoverer : ITestContainerDiscoverer
{
[ImportingConstructor]
public MyTestContainerDiscoverer([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
{
File.WriteAllText(@"M:\Coding\Applications\LuaTestAdapter\LuaTestAdapter\bin\Debug\Danny.txt", "TEST!");
Console.WriteLine("IT'S RUNNING!");
Debugger.Launch();
}
public Uri ExecutorUri
{
get { return TestExecutor.ExecutorUri; }
}
public IEnumerable<ITestContainer> TestContainers
{
get
{
return new[] {
new TestContainer(this, @"M:\TestProject\Test.lua")
};
}
}
public event EventHandler TestContainersUpdated;
}
我在一个以 .TestAdapter.dll 结尾的 DLL 中构建它,并手动将其复制到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions 中,然后启动 VS。 VS 正确加载了 TestAdapter,因为在同一个项目中,我的 TestDiscoverer(当前包含 DLL 作为调试扩展)正在输出到控制台:
[FileExtension(".lua")]
[FileExtension(".dll")]
[DefaultExecutorUri(TestExecutor.ExecutorUriString)]
public class TestDiscoverer : ITestDiscoverer
{
public void DiscoverTests(IEnumerable<string> sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink)
{
logger.SendMessage(TestMessageLevel.Informational, "This one works!");
}
}
所以我认为 TestContainerDiscovered 一定有问题;但我在网上发现的样本中看不到任何不同之处:O(
【问题讨论】:
标签: c# .net visual-studio visual-studio-2013