2014-11-20 91 views
2

我想寫收視模型的一些集成測試在我的WPF解決方案,其中線程的主要與全局設置 AppDomain.CurrentDomain.SetThreadPrincipal(principal);運行NUnit測試與螺紋主體設置全局

NUnit的不提供機制做同樣的從測試代碼,喜歡的東西:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.NoPrincipal); 
AppDomain.CurrentDomain.SetThreadPrincipal(myCustomPrincipalInstance); 

有可能通過NUnit的的「設置對話框」做到這一點,但它不是我所需要的(更多關於Test Loader Settings - Advanced/Principal Policy下,該解決方案

有沒有辦法用全局設置的principal來運行一個測試,以便它可以被測試的代碼棧中的所有線程使用?有沒有一個NUnit插件可以提供這樣的功能,或者有辦法用新的AppDomain運行測試,我可以設置自定義主體(我將如何做到這一點)?

我試圖做一些與MsTest類似的地方,其中PrincipalPolicy.WindowsPrincipal是默認設置,但我無法將線程主體也設置爲AppDomain。

回答

4

NUnit中有這種東西叫TestExecutionContext。您應該能達到預期的效果,通過調用:

TestExecutionContext.CurrentContext.CurrentPrincipal = customPrincipal; 

爲什麼會這樣很難找到網絡上,我不知道,但除非你知道它的存在,它需要一段時間才能得到它:-)。

希望它有幫助。

+0

謝謝。對於其他人:我不得不添加對NUnit.Core的引用,以獲得TestExecutionContext – 2014-11-21 09:37:21