2015-04-01 82 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

相關問題