如何在Azure DevOps流水线中添加Bash/PowerShell脚本触发自动化测试
在Azure DevOps CI流水线中添加Bash/PowerShell脚本触发自动化测试
作为刚接触CI和Azure DevOps的新手,你可以通过两种主流方式把Bash或PowerShell脚本加入流水线来触发自动化测试,下面我一步步给你讲清楚:
一、使用YAML流水线(推荐方式)
YAML是Azure DevOps官方推荐的流水线定义方式,支持版本控制,灵活性更高,适合长期维护。
1. 添加Bash脚本任务
如果你的测试工具更适合在Linux环境运行,或者习惯用Bash,直接在YAML中定义script任务即可:
# 触发流水线的分支,可根据你的项目修改 trigger: - main # 选择运行脚本的虚拟机环境,ubuntu-latest适合Bash pool: vmImage: 'ubuntu-latest' steps: - script: | # 这里替换成你的实际脚本逻辑:安装测试工具、执行测试 echo "开始安装自动化测试工具" npm install your-test-tool --save-dev # 示例:安装Node.js测试工具,按需替换 echo "启动自动化测试" npx your-test-tool run-all-tests # 示例:触发测试命令,替换为你的工具指令 displayName: '运行Bash脚本触发测试' # 可选:指定脚本运行的工作目录,比如你的项目根目录 # workingDirectory: 'src/your-project'
如果需要在Windows代理上运行Bash,把vmImage换成windows-latest即可,Azure DevOps的Windows代理默认支持Bash环境。
2. 添加PowerShell脚本任务
如果你的测试工具依赖Windows环境,或者习惯用PowerShell,用powershell任务:
trigger: - main # 选择Windows虚拟机环境 pool: vmImage: 'windows-latest' steps: - powershell: | # 替换成你的PowerShell脚本逻辑 Write-Host "安装自动化测试工具" Install-Module YourTestTool -Force -Scope CurrentUser # 示例:安装PowerShell模块测试工具 Write-Host "执行自动化测试" Invoke-YourTestTool -TestSuite Full # 示例:触发测试的命令,按需替换 displayName: '运行PowerShell脚本触发测试'
如果想用跨平台的PowerShell Core,把powershell换成pwsh,并可以选择ubuntu-latest或macOS-latest作为虚拟机环境。
二、使用经典编辑器(可视化配置)
如果你暂时不想写YAML,经典编辑器的图形化界面可以快速完成配置:
1. 添加Bash脚本任务
- 打开Azure DevOps项目的流水线页面,点击「新建流水线」,选择「经典编辑器」,接着选择你的代码源和目标分支。
- 在流水线的任务列表区域,点击「+」号,搜索Bash任务,添加到流水线的合适阶段(比如「构建」阶段之后)。
- 在任务配置面板:
- 填写显示名称,比如「运行测试Bash脚本」。
- 在「脚本」框中直接输入Bash命令,或者选择「文件路径」,指定代码仓库中已有的Bash脚本(比如
scripts/run-tests.sh)。 - 可选:设置「工作目录」,指定脚本运行的相对路径。
- 保存流水线,点击「运行」即可执行脚本触发测试。
2. 添加PowerShell脚本任务
- 同样在经典编辑器中,点击「+」号,搜索PowerShell或PowerShell Core任务,添加到流水线。
- 配置面板中:
- 填写显示名称。
- 在「脚本」框输入PowerShell命令,或者选择文件路径指向仓库中的
.ps1脚本文件。 - 如果选PowerShell Core,还可以选择在Linux/macOS代理上运行。
- 保存后运行流水线,任务就会执行PowerShell脚本触发测试。
三、实用注意事项
- 环境依赖:确保你选择的虚拟机代理安装了测试工具需要的基础依赖(比如Node.js、.NET、Python等),如果没有,可以在脚本开头先安装依赖(比如
apt-get install nodejs或choco install dotnet)。 - 敏感信息:不要在脚本里硬编码密码、密钥等敏感内容,用Azure DevOps的秘密变量或变量组,在脚本中用
$(VariableName)引用即可。 - 测试结果集成:如果测试工具生成了测试报告,记得添加「发布测试结果」任务,把报告上传到Azure DevOps,这样就能在流水线页面直接查看测试通过率、失败用例等信息。
内容的提问来源于stack exchange,提问作者ajgisme
相关产品推荐
相关产品推荐

