VSTS中的文件路径

时间:2016-09-26 13:16:41

标签: c# batch-file azure-devops

我希望在C#中以编程方式运行批处理文件,作为测试的一部分(在MS TEST中运行),我在本地计算机上工作。我想运行的批处理文件位于包含源代码的支持文件夹的存储库中。在VSTS中,测试运行如下:

  

" C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe" " C:\国际\ InternationalAppAutomation \ International.IntegrationTests.UI \ International.IntegrationTests.UI \ BIN \调试\ International.IntegrationTests.UI.dll" " C:\国际\ InternationalAppAutomation \ International.IntegrationTests.UI \ International.IntegrationTests.UI \ OBJ \调试\ International.IntegrationTests.UI.dll" / TestCaseFilter:" TestCategory =探索" /Settings:"C:\International\InternationalAppAutomation\International.IntegrationTests.UI\International.IntegrationTests.UI\QA.testsettings" / logger:trx / TestAdapterPath:" C:\ International \ InternationalAppAutomation"

由于我使用相对路径来运行批处理文件,因此它失败了,因为VSTS从与本地计算机不同的位置运行。这个问题的推荐解决方案是什么?

注意 - 我无法将此批处理文件放在测试输出文件夹中,因为它非常大,我们不想为每次新的测试运行复制它。

1 个答案:

答案 0 :(得分:1)

如果要在测试执行中使用它,可能需要使用测试类或方法上的属性将其设置为[DeploymentItem],这样可以确保将其置于测试执行目录中。

如果这不是一个选项,请使用环境变量来查找源控件根目录。构建代理将自动设置变量%BUILD_SOURCESDIRECTORY%。您或您的批处理文件应该能够使用它来查找位置。或者,使用我的VSTS variables task设置具有文件路径的特定变量。每个变量将在后续任务中用作环境变量。您可以使用现有变量来解析文件的路径。

如果您仍在使用XAML版本,则可以使用类似的变量%TF_BUILD_SOURCESDIRECTORY%

见:

根据您解决文件的方式,您可能需要告诉批处理文件当前的测试输出目录或工作目录。这些可以从C#端轻松检索,然后可以存储在环境中,或者在执行批处理文件时作为参数传递。

通过向测试类添加适当的TestContext属性,您可以从以下位置检索这些目录:

TestContext.DeploymentDirectory 
TestContext.TestResultsDirectory 

请参阅: