通过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设置中有一个新的选项。