我们正在使用 Microsoft 托管代理为我们的应用程序的自动化测试场景运行构建管道。我们想要实现的是,拥有我们的自动化程序,下载文件(从无头 chrome 浏览器),然后导航到下载文件的路径并打开它。
我怎样才能找到在代理中下载文件的路径?
我们正在使用 Microsoft 托管代理为我们的应用程序的自动化测试场景运行构建管道。我们想要实现的是,拥有我们的自动化程序,下载文件(从无头 chrome 浏览器),然后导航到下载文件的路径并打开它。
我怎样才能找到在代理中下载文件的路径?
安装代理时,您指定工作目录。在管道任务中,您可以使用 $(Agent.BuildDirectory) 等变量准确了解该目录中文件的暂存位置。这可能不是您需要的确切位置,但我认为它的方向是正确的。
有关预定义变量的完整列表,请参见此处:https ://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml
您可以查看此文档:
所以对于 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
文件夹中找到您的文件。希望能帮助到你。
从官方文档链接快速编译与 Linux 和 Windows 自托管代理的构建路径相关的预定义变量列表。
您正在寻找的是Agent.BuildDirectory
或Pipeline.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 |