通过Resharper运行NUnit由于AppDomain导致项目之间交叉时,8个testing失败
我最近更新到Resharper 8,当我试图运行一套项目。 这些testing包含两个集成testing套件,这两个testing套件都使用IISExpress来运行网站,发出Web请求并检查响应。
单独运行它们是成功的,运行所有的testing将会成功。 但是,在第二组testing运行失败之后。
调查显示AppDomain.CurrentDomain.BaseDirectory
停留在运行而不是改变的第一个testing。 由于集成testing由两个项目组成,这导致第二个项目失败,因为找不到任何所需的configuration文件。
我无法find任何选项来禁用Resharper 8中的这种不同的行为,这似乎是/domain:Single
的行为/domain:Single
nunit标志。 对Resharper 7的降级不足,是否有人知道这个解决scheme? 这是Resharper 8的一个预期的行为还是一个错误?
解决方法:
你有没有尝试在Visual Studio去ReSharper – >选项 – >工具 – >unit testing
将设置“最多并行运行1个程序集”更改为更高的数字。 我为每个testing项目尝试了一个。 我认为,Max是核心数量。
我知道违反直觉,但它为我工作,我在失败的testing中使用AppDomain.CurrentDomain.BaseDirectory
原因 ReSharper 8.工作目录中的caching优化错误设置不正确。 也许并行运行会为每个testing创build一个单独的进程,所以它们不会相互影响。
Fix JetBrains声称这将在版本8.0.1中修复
更新:在Resharper 8.1中添加了一个新的unit testing选项来适应这种情况。 在ReSharper – >选项 – >工具 – >unit testing – >“ 为每个程序集使用单独的AppDomain进行testing。
我们看到同样的问题。 我认为这是一个错误。 见:http: //youtrack.jetbrains.com/issue/RSRP-380761
这已经在Resharper 8.0.2中修复了:http: //youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929
不要忘记selectReSharper | 选项| 工具| unit testing| “为testing每个程序集使用单独的AppDomain”来使其工作。
即在unit testing设置中有一个新的选项。