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

时间:2010-11-09 03:03:56

标签: .net unit-testing resharper mstest

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

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:4)

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

答案 2 :(得分: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中都是一致的! (提醒:您仍然必须设置“构建操作” =“内容”并复制到输出目录” =“始终复制”)

希望其他测试库中也有类似的东西。