3

我们正在使用 Microsoft 托管代理为我们的应用程序的自动化测试场景运行构建管道。我们想要实现的是,拥有我们的自动化程序,下载文件(从无头 chrome 浏览器),然后导航到下载文件的路径并打开它。

我怎样才能找到在代理中下载文件的路径?

4

3 回答 3

2

安装代理时,您指定工作目录。在管道任务中,您可以使用 $(Agent.BuildDirectory) 等变量准确了解该目录中文件的暂存位置。这可能不是您需要的确切位置,但我认为它的方向是正确的。

有关预定义变量的完整列表,请参见此处:https ://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

于 2020-01-17T19:07:50.817 回答
0

您可以查看此文档

在此处输入图像描述

所以对于 Linux 来说它的默认位置/home/<username>/Downloads

Microsoft hosted agent-window2019使用测试 C# 代码(来自Daniel 的提示!)进行测试,例如:

        static void Main(string[] args)
        {
            string FILEURI = "https://www.nuget.org/api/v2/package/Cauldron.Newton/2.0.0";
            System.Diagnostics.Process prozess = new System.Diagnostics.Process();
            prozess.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
            prozess.StartInfo.Arguments = "--download " + FILEURI;
            prozess.Start();
            Console.WriteLine("Test starts.");
        }

然后我使用类似的命令dir c:\users\VssAdministrator\cauldron.newton.2.0.0.nupkg /s /b来查找下载文件的位置:cauldron.newton.2.0.0.nupkg.

然后我确认 Chrome 的默认下载位置仍然是C:/Users/{user}/Downloads,与使用自代理或本地下载相同。(运行 Windows 托管代理时,VssAdministrator 是用户)

在此处输入图像描述

所以我认为 Linux 托管代理应该有类似的行为。您可以尝试从/home/<username>/Downloads文件夹中找到您的文件。希望能帮助到你。

于 2020-01-18T09:33:10.747 回答
0

从官方文档链接快速编译与 Linux 和 Windows 自托管代理的构建路径相关的预定义变量列表。

您正在寻找的是Agent.BuildDirectoryPipeline.Workspace

预定义变量列表:

变量类型 多变的 描述 例子
代理人 Agent.BuildDirectory 为给定构建管道创建所有文件夹的代理上的本地路径 D:\..\代理\_work\1
代理人 代理.主目录 安装代理的目录 C:\代理
代理人 代理.临时目录 在每个管道作业后清理的临时文件夹 D:\..\代理\_work\_temp
代理人 Agent.Tools目录 Node Tool Installer 和 Use Python Version 等任务使用的目录,用于在一个工具的多个版本之间切换 D:\..\agent\_work\_tool
代理人 代理.工作文件夹 代理的工作目录 c:\agent_work
建造 Build.Sources 目录 下载源代码文件的代理上的本地路径。 c:\agent_work\1\s
建造 Build.ArtifactStagingDirectory 代理上的本地路径,任何工件在被推送到其目的地之前被复制到该路径。使用此文件夹的典型方法是使用 Copy files 和 Publish build artifacts 任务发布您的构建工件 c:\agent_work\1\a
建造 Build.StagingDirectory 代理上的本地路径,任何工件在被推送到其目的地之前被复制到该路径。 c:\agent_work\1\a
建造 Build.BinariesDirectory 代理上的本地路径,您可以将其用作已编译二进制文件的输出文件夹 c:\agent_work\1\b
建造 Build.Repository.LocalPath 下载源代码文件的代理上的本地路径。 c:\agent_work\1\s
建造 Common.TestResults目录 代理上创建测试结果的本地路径。 c:\agent_work\1\TestResults
管道 管道.工作区 特定管道的工作区目录 /home/vsts/工作/1
系统 System.DefaultWorkingDirectory 下载源代码文件的代理上的本地路径。 c:\agent_work\1\s
于 2022-02-03T13:38:30.633 回答