使用VS2010我有一个测试,它调用一个运行命令行命令输出文件的方法。
文件输出到: ... \ TestResults \ xxxxxx 2011-02-04 09_45_46 \ Out
我想测试文件是否已成功写入
有没有一种方法可以在没有硬编码的情况下引用这条路径?
答案 0 :(得分:1)
我昨天必须这样做:
string outputDir = new DirectoryInfo(Assembly.GetExecutingAssembly().Location).Parent.FullName
答案 1 :(得分:1)
对不起,我现在找你了。
您可以使用Unit Test类附带的TestContext属性。 你有ResultDirectory,TestDir,TestDeploymentDir等属性......
如果你的TestClass中没有它,只需添加一个名为TestContext的公共TestContext属性。
最好只创建一个新的Unit Test类,看看它是如何使用的。
答案 2 :(得分:0)
您指的是路径中的xxxxxx 2011-02-04 09_45_46
部分吗?您可以浏览...\TestResults\
路径中的文件夹,获取最后一个文件夹(希望是您想要的文件夹),然后使用Path.Combine创建完整路径。然后,您需要做的就是检查文件是否存在。
答案 3 :(得分:0)
您可以在项目的构建事件中指定特殊变量。
以下是参考资料:Macros for Build Commands and Properties
我认为OutDir或TargetDir是您可能正在寻找的。 p>
答案 4 :(得分:0)
另一个更强大的IMHO选项是提供命令行实用程序的输出路径,您可以将其指定为已知位置(即Path.GetTempPath或Path.GetRandomFileName)。这样,您就不会嵌入脆弱的测试运行依赖项。