【问题标题】:How to set relative path for DeploymentItem in MSTest?如何在 MSTest 中设置 DeploymentItem 的相对路径?
【发布时间】:2015-08-24 12:29:15
【问题描述】:

很多人都在为relative path in DeploymentItem 苦苦挣扎。相对路径来自解决方案文件夹。这仅适用于从 Visual Studio 运行时,因为 mstest.exe 以编译项目(而不是 sln 文件)作为 dll 启动,因此无法正确确定部署项的相对路径。

我have found 我应该通过RelativePathRoot 元素在testrun.config 中设置DeploymentItem 相对路径。但是几乎没有RelativePathRoot 的文档,这很奇怪。如何设置MSTest的相对路径?

【问题讨论】:

    标签: c# mstest deploymentitem


    【解决方案1】:

    正确的做法是在调用 MSTest.exe 时将工作目录设置为解决方案目录。这是解决 DeploymentItem 问题的简单方法。

    这意味着如果您的存储库中有多个项目和多个解决方案(每个解决方案都包含其中一些项目),那么所有这些解决方案(sln 文件)必须位于同一目录中。因为从每个解决方案到一个项目的相对路径必须相同。所以我强烈建议有一个名为 Solutions 的根目录和所有这些 sln 文件。

    如果测试项目包含在不同目录中的两个不同解决方案中,则 DeploymentItem 的相对路径将不同,您将永远无法在两个解决方案中正确配置 MSTest 和 deploymentPath。

    【讨论】:

    • 我喜欢这个答案。您如何从命令行执行此操作?谢谢。
    • 是的,无论是从命令行还是在 TeamCity 持续集成中有“工作目录”设置,每次提交都会运行 mstests.exe。
    • 好的。你给了我我需要的提示。对于未来的读者............在我调用 MsTest.exe 之前......我做了一个“CD .\FolderWhereMySolutionResides”。然后在 DeploymentItem 定义中,我有一个必要文件的相对路径.....基于 .sln 的位置(也就是同一个 FolderWhereMySolutionResides 文件夹)。我的看起来像这样:[DeploymentItem(@".\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeDll.dll")]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多