感謝您回覆我的評論。我想我可以建議你一個可能的解決方案,而我自己也沒有嘗試過。但我相信這是可行的。這個建議更多的是一種編程方法,它與您提到的每個測試框架提供的一些內置命令行選項(NUnit,MSTest,xUnit)混合在一起。
如果所有這些測試框架都具有執行測試的能力,無論是有選擇地,作爲一個組還是通過命令行作爲整個測試套件,都可以使用Console App和預定義的參數來執行這些測試測試你想要的。
據我所知,所有這些測試框架都提供了命令行測試運行器和選項。但是他們可以根據他們提供的選項來區分。
首先要分析每個測試框架的能力,提供命令行參數,以便您可以根據需要執行測試。
MSTest.exe Command Line提供了一些您可能想要查看的選項。
是一些你可以考慮的選項。
NUnit console也提供了一些選項。但我還沒有看到這一點。
XUnit has a Console Test runner你可以看看更多(即xunit.console MyTestLibrary.dll)。
請務必注意,xUnit.NET和NUnit都是可擴展的。所以如果你沒有你需要的選項,你可以看看擴展框架提供的內容。即使沿着創建自己的控制檯跑步者的路徑走並不那麼困難。不喜歡MSTest,這兩個框架都是開源的,所以你可以看到他們提供的選項。鑑於有選擇地運行測試是一個關鍵要求,我會想象這些框架具有內置選項,而且您不必執行大量定製。
一旦確定了這些框架的控制檯對應的功能,就可以繼續創建客戶端應用程序/控制檯應用程序,您可以指定測試以有選擇地運行。這個客戶端應用程序將有選擇性地向每個跑步者提供測試並執行Console.exe。這應該有選擇地運行你的測試。您可以通過提供某種可配置的元數據/清單文件來進一步自動化。例如,您可以指定要從元數據或清單文件運行的各種測試,並且控制檯運行器將從元數據文件中讀取。
根據您的客戶端應用程序配置,如果它是控制檯應用程序,則還可以通過構建系統調用。
希望這會指出你想要達到的目標。
你爲什麼要手卷自己的?爲什麼你想以編程方式做到這一點? JetBrain的Resharper支持所有上述測試。現在VS2013支持(如果您安裝必要的適配器),您可以選擇性地運行每個測試或運行所有測試。 – Spock
我不想自己做這件事,但我不知道我現在怎麼能得到這個功能。所以最後可能需要創建自己的lib來實現這一點。是的,我可以使用上面提到的方法之一從IDE執行此操作,但我必須在代碼中執行此操作。原因是我的程序的目的。它必須加載許多解決方案並檢查某些方法的測試。如果我想在VS中檢查這個測試1000解決方案並檢查每個解決方案的1000套測試中的10個測試將會非常痛苦。 – Krzysztof
府中可以做到這一點。請參閱http://bugsquash.blogspot.com/2012/06/fuchu-functional-test-library-for-net.html中的「NUnit/MbUnit測試加載」。添加MsTest應該很容易。 –