2015-11-05 31 views
0

我正在使用VS 2013和NUnit。 我跑我的Resharpers的TestRunner的GUI測試 - 這件事情:enter image description here從NUnit Runner中的多個TestProjects運行測試時,NUnit TestDirectory出錯

我有多個項目(Solution.Foo,Solution.Bar等),和試驗在Solution.Foo.Tests每個項目,解決方案。 Bar.Tests等

Foo.Tests中的一個測試是訪問位於Solution.Foo.Tests文件夾中的文件。

我使用TestContext.CurrentContext.TestDirectory找到它,當我運行該測試時,它一切正常。 如果我在Foo.Tests中運行整套測試(即在Runner GUI中單擊Solution.Foo.Tests並運行),那就沒問題。 但是,如果我從Bar.Tests中選擇一個測試,並從Foo.Tests中選擇我的文件讀取測試,那麼它會失敗,因爲TestDirectory突然被設置爲Bar.Tests中的路徑。

就好像NUnit設置了TestDirectory一次,當它開始運行測試集合時,由第一個測試的位置決定,然後再也不會更新它。

任何想法發生了什麼,以及如何解決它?

回答

3

ReSharper通過在多個程序集間共享AppDomain來優化速度。其缺點是它會選擇一個任意程序集作爲主程序,這意味着該目錄可能是錯誤的(並且它也可能不會選取正確的app.config)。

您可以在ReSharper中禁用優化→選項→單元測試,方法是選中「爲每個測試程序使用單獨的AppDomain」。

+0

是的,這是固定它 - 非常感謝! – Brondahl