Dar*_*mas 5 resharper nunit unit-testing
我有一些测试,我使用ReSharpers"从解决方案运行所有测试"功能.其中一个被测试的类依赖于与包含它的程序集相同的文件夹中的文件.此文件通过MSBuild复制到输出目录(将"复制到输出目录"设置为"始终复制").
问题:测试不是从正常的程序集输出目录运行,而是在我的用户配置文件中的某个临时位置运行.
因此,我真的不知道在哪里寻找文件 - 测试运行器不会在那里复制它.我可以强迫它吗?
NUnit网站建议在这种情况下使用Assembly.CodeBase属性,这会导致我需要的bin/debug.
"注意:如果您想要禁用卷影副本以访问与程序集相同的目录中的文件,您应该知道有其他选择.请考虑使用Assembly.Codebase属性而不是Assembly.Location."
.Location返回了Uri样式地址"file://// D:// Projects ...",所以我使用的实际代码是
string applicationDirectory = new Uri(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)).LocalPath;
Run Code Online (Sandbox Code Playgroud)