haw*_*awx 48 c# resharper integration-testing nunit appdomain
我最近更新到Resharper 8,当我试图运行一套项目时.这些测试包含两套集成测试,它们都使用IISExpress来运行网站,发出Web请求并检查响应.
单独运行它们是成功的,并且运行所有测试之前会成功.但是,在运行后,第二组运行测试将失败.
调查显示,这AppDomain.CurrentDomain.BaseDirectory
是第一次试运行而不是改变.由于集成测试由两个项目组成,这导致第二个项目失败,因为它找不到任何所需的配置文件.
我在Resharper 8中找不到任何禁用这种不同行为的选项,这似乎是/domain:Single
nunit标志的行为.没有降级到Resharper 7,有人知道解决方案吗?它是Resharper 8的预期行为还是一个bug?
Dan*_*son 55
解决方法:
您是否尝试使用Visual Studio转到ReSharper - >选项 - >工具 - >单元测试
将"并行运行至1个组件"设置更改为更高的数字.我为每个测试项目尝试了一个.我认为Max是核心数.
反直觉,我知道,但它对我有用,我在失败的测试中使用AppDomain.CurrentDomain.BaseDirectory
原因 ReSharper 8中的缓存优化错误.工作目录未正确设置.也许并行运行会为每个测试创建一个单独的过程,因此它们不会跳过彼此的设置.
Fix JetBrains声称这将在8.0.1版本中修复
更新:Resharper 8.1中添加了一个新的单元测试选项以适应这种情况.在ReSharper找到它 - >选项 - >工具 - >单元测试 - >" 为每个带有测试的程序集使用单独的AppDomain.
这已在Resharper 8.0.2中修复:http://youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929
不要忘记勾选新选项ReSharper | 选项| 工具| 单元测试| "为每个带有测试的程序集使用单独的AppDomain"以使其正常工作.
即单元测试设置中现在有一个新选项.
归档时间: |
|
查看次数: |
7282 次 |
最近记录: |