【发布时间】:2011-08-08 06:51:00
【问题描述】:
在 VS 2010 中的 MS Test 下运行测试时,如何找到执行程序集的等效路径?我需要知道测试从哪里运行,以便我可以设置它需要的数据文件的相对路径。
我正在尝试找到与在执行程序集上使用System.Reflection.Assembly.GetEntryAssembly().Location 时相同的执行测试路径。感谢您的帮助。
【问题讨论】:
在 VS 2010 中的 MS Test 下运行测试时,如何找到执行程序集的等效路径?我需要知道测试从哪里运行,以便我可以设置它需要的数据文件的相对路径。
我正在尝试找到与在执行程序集上使用System.Reflection.Assembly.GetEntryAssembly().Location 时相同的执行测试路径。感谢您的帮助。
【问题讨论】:
您可以使用TestContext.DeploymentDirectory 获取测试部署目录。测试配置允许您automatically deploy files 进行测试。
【讨论】:
DeploymentItemAttribute,或者<DeploymentEnabled>False</DeploymentEnabled> 包含在您的.runsettings 文件中,则不会进行MSTest 部署,您的测试将直接从构建输出文件夹执行。使用下面 Nikita 建议的 AppDomain.CurrentDomain.BaseDirectory 在这两种情况下都有效,Environment.CurrentDirectory 也是如此(我不太喜欢它,因为它很容易更改)。
此问题并非针对 MsTest。您可以使用在任何其他 .NET 应用程序中使用的相同解决方案。
string directory = AppDomain.CurrentDomain.BaseDirectory;
【讨论】:
【讨论】: