我试图获取单元测试中文件的完整路径,该文件位于项目的文件夹中。
我尝试使用
Directory.GetCurrentDirectory();
但这会返回我的测试正在运行的目录。我想要项目(或解决方案)的目录,而不必在其中进行硬编码。然后我可以附加文件名的最后部分。类似的东西
System.getProperty("user.dir")
in java
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
将为您提供正在运行的单元测试 DLL 本身的路径。
为了访问项目子文件夹中的文件,最简单的做法是将相关文件标记为Build Action = Content
and Copy to Output Directory = Copy if newer
。如果这样做,那么每当您构建项目时,它们都会被复制到正在运行的程序集文件夹下的相关文件夹中。然后,您可以计算相对于正在运行的程序集的物理路径。
例如:
- 您有一个文本文件位于
<project root>\TestData\Data1.txt
.
- 当您在调试模式下构建项目时,它将被复制到
<project root>\bin\Debug\TestData\Data1.txt
.
- 代码中的物理路径将是
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestData\Data1.txt")
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)