Resharper单元测试运行器无法查找内容文件

问题描述 投票:11回答:3

我有一些测试依赖于我标记为“内容”的一些文件和“始终复制”。我正在使用DeploymentItem属性来确保在VS之外运行mstest时将它们复制到输出目录。但是,当在VS中使用Resharper测试运行器时,这些文件永远不会进入它正在执行的目录。有人知道怎么修这个东西吗?

.net unit-testing resharper mstest
3个回答
9
投票

禁用Unit Testing > Shadow-copy assemblies being tested Resharper选项为我解决了这个问题。


4
投票

我们通过将测试文件标记为嵌入资源然后使用a utility method to read the embedded resource并将其写入预期位置来解决此问题。


0
投票

我也在努力进行基于NUnit的测试,我在测试项目中有文件,我希望在测试过程中将其读入。

通过NCrunch运行工作正常,但使用Resharper,它无法找到该文件,因为它正在使用其他位置(例如C:\ Users \ myuser \ AppData \ Local \ JetBrains \ Installations \ ReSharperPlatformVs15_f6172a1d_000)。

撕掉我的头发后,我终于找到了解决方案。而不是使用

Environment.CurrentDirectory

要么

System.Reflection.Assembly.GetEntryAssembly().Location

NUnit中有一个内置属性:

TestContext.CurrentContext.TestDirectory

现在,NCrunch,ReSharper和内置的Visual Studio Test Explorer的一切都是一致的! (提醒:您仍然需要设置“构建操作”=“内容”并复制到输出目录“=”始终复制“)

希望在其他测试库中有一个等价物。

© www.soinside.com 2019 - 2024. All rights reserved.