2015-04-01 47 views
3

最近我才了解的NuGet基于适配器/亚军(http://xunit.github.io/docs/running-tests-in-vs.html基于Visual Studio和的NuGet测试运行器/适配器

我试图了解这些选手/适配器由Visual Studio的认可,然后通过使用TestWindow。例如,如果我安装“xunit.runner.visualstudio”nuget软件包,我的项目中所有基于xUnit的测试都会在测试窗口中被发现并显示出来。

我想了解如何使用安装在软件包文件夹中的软件包挂钩测试发现?

VS和nuget基于的适配器在哪里/如何被吸引?

我试图找到这方面的信息,但我的谷歌福失败了我。 :(

我检查答案的问题(Custom test adapter installed via NuGet isn't discovering tests),它并说,VS复制软件包到路径%TEMP%\ VisualStudioTestExplorerExtensions但是这几乎是它。

+0

想知道同样的事情我自己,我要检查github中的xunit亚军代码:https://github.com/xunit/visualstudio.xunit – Benjol 2016-02-18 08:18:39

回答

5

因为这涉及到很多VS如何在内部工作,我不认为你会得到一个完全确定的答案。但是,为了解决你关联的问题,我查看了一堆反汇编的代码,所以我有一个非常好的主意,下面是它的工作原理:

  1. 你建一个项目,它引用了一个名为Sample.TestAdapter
  2. 包0
  3. VS将Sample.TestAdapter目录从软件包复制到%TEMP%\ VisualStudioTestExplorerExtensions
  4. 某些东西触发测试发现 - 重建始终会执行,有时也会执行增量构建。 vstest.console.exe在这里用于调试很有用。
  5. VS启动vstest.discovery.exe看起来在VisualStudioTestExplorerExtensions为如果发现ITestDiscoverer实现ITestDiscoverer
  6. 组件,VS与可能包含测试
  7. 测试,被发现发送组件列表调用它回到VS通过你的测试适配器

所以,据我所知,它是一个非常简单的基于反射的插件架构。希望有所帮助。

+0

感谢您的快速反馈..我会等待情侣在接受答案之前查看是否有其他人的输入。 – Chandu 2015-04-01 22:25:52

相关问题