簡體   English   中英

由於AppDomain,在項目之間交叉時,通過Resharper 8測試運行NUnit失敗

[英]Running NUnit through Resharper 8 tests fail when crossing between projects due to AppDomain

我最近更新到Resharper 8,當我試圖運行一套項目時。 這些測試包含兩套集成測試,它們都使用IISExpress來運行網站,發出Web請求並檢查響應。

單獨運行它們是成功的,並且運行所有測試之前將成功。 但是,在運行后,第二組運行測試將失敗。

調查顯示AppDomain.CurrentDomain.BaseDirectory是第一個運行而不是更改的測試。 由於集成測試由兩個項目組成,這導致第二個項目失敗,因為它找不到任何所需的配置文件。

我在Resharper 8中找不到任何禁用此不同行為的選項,這似乎是/domain:Single的行為/domain:Single nunit標志。 沒有降級到Resharper 7,有人知道解決方案嗎? 它是Resharper 8的預期行為還是一個bug?

解決方法:

您是否嘗試使用Visual Studio轉到ReSharper - >選項 - >工具 - >單元測試

將“並行運行至1個組件”設置更改為更高的數字。 我為每個測試項目嘗試了一個。 我認為Max是核心數。

反直覺,我知道,但它對我有用,我在失敗的測試中使用AppDomain.CurrentDomain.BaseDirectory

原因 ReSharper 8中的緩存優化錯誤。工作目錄未正確設置。 也許並行運行會為每個測試創建一個單獨的過程,因此它們不會跳過彼此的設置。

Fix JetBrains聲稱這將在8.0.1版本中修復

更新: Resharper 8.1中添加了一個新的單元測試選項以適應這種情況。 在ReSharper找到它 - >選項 - >工具 - >單元測試 - >“ 為每個帶有測試的程序集使用單獨的AppDomain。

我們看到同樣的問題。 我認為這是一個錯誤。 請參閱:http: //youtrack.jetbrains.com/issue/RSRP-380761

這已在Resharper 8.0.2中修復:http: //youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929

不要忘記勾選新選項ReSharper | 選項| 工具| 單元測試| “為每個帶有測試的程序集使用單獨的AppDomain”以使其正常工作。

即單元測試設置中現在有一個新選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM