MS测试:执行测试位置?

Dav*_*man 19 c# mstest

在VS 2010中的MS Test下运行测试时,如何找到执行程序集的路径的等价物?我需要知道测试的运行位置,以便我可以设置它所需的数据文件的相对路径.

我试图找到一个执行测试的相同路径,如果我System.Reflection.Assembly.GetEntryAssembly().Location在执行程序集上使用,我会得到它.谢谢你的帮助.

Mar*_*ade 23

您可以使用它TestContext.DeploymentDirectory来获取测试部署目录.测试配置允许您自动部署文件以进行测试.

  • 这仅在 MSTest 部署有效时才适用。如果没有测试使用 `DeploymentItemAttribute`,或者 `<DeploymentEnabled>False</DeploymentEnabled>` 包含在你的 `.runsettings` 文件中,则不会进行 MSTest 部署,你的测试将直接从构建输出文件夹执行。使用下面 Nikita 建议的“AppDomain.CurrentDomain.BaseDirectory”在两种情况下都适用,“Environment.CurrentDirectory”也是如此(我不太喜欢它,因为它很容易改变)。 (3认同)

Nik*_* G. 7

此问题并非特定于MsTest。您可以使用与任何其他.NET应用程序相同的解决方案。

类似问题的答案:

string directory = AppDomain.CurrentDomain.BaseDirectory;
Run Code Online (Sandbox Code Playgroud)