利用Azure DevOps建设ExcelBDD的持续集成
Posted zhangmike
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Azure DevOps建设ExcelBDD的持续集成相关的知识,希望对你有一定的参考价值。
在ExcelBDD开源敏捷项目启动了!暨介绍微软Agile+DevOps免费平台-dev.azure.com 一文当中介绍了利用Agile DevOps管理需求。
本文来介绍其中的持续集成建设。
直接进入正题,ExcelBDD的Azure DevOps项目主界面如下:
一图胜千言,上图就是Azure DevOps Pipelines菜单。
在右上角点击“New Pipeline",可以看到如下代码库:
重要提醒:能够接入既有的GitHub库,也就是说在Azure DevOps上建立一个新项目可以对接GitHub的老库,能够免费使用Azure DevOps的Pipeline。
ExcelBDD全部搭建在Azure DevOps上,因此实例选择Azure Repos Git,出现如下界面
这是ExcelBDD开源项目之前已经设置的,点击,得到如下
这里只展示一屏,还有很多,几乎覆盖了当前常见的开发语言和对应配置。
本例选择Mavan,接下来就得到Pipeline YAML配置文件
ExcelBDD的Java部分 实例如下
trigger:
- '*'
pool:
vmImage: ubuntu-latest
steps:
- task: Maven@3
inputs:
mavenPomFile: 'JavaExcelBDD/pom.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'test'
# Publish Test Results
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit, cTest
testResultsFiles: '**/TEST-*.xml'
searchFolder: 'JavaExcelBDD'
- task: PublishCodeCoverageResults@1
inputs:
summaryFileLocation: "**/jacoco.xml"
pathToSources: 'JavaExcelBDD/src'
failIfCoverageEmpty: true
displayName: "Publish Test Code Coverage"
可以看到,凭借YAML的可读性,以上分成3个部分
1,maven编译和测试,监控任意变更
2,发布测试结果
3,发布测试覆盖率
下面例子是PowerShell部分的CI
trigger:
- master
- PS*
pool:
vmImage: ubuntu-latest
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.
Write-Host "Start to install ImportExcel"
Install-Module -Name ImportExcel -Scope CurrentUser -Force
Write-Host "Installed ImportExcel successfully."
errorActionPreference: 'continue'
- task: PowerShell@2
inputs:
filePath: 'PowerShellExcelBDD/CI/CI_L1.ps1'
errorActionPreference: 'continue'
displayName: 'Test ExcelBDD'
- task: PublishTestResults@2
inputs:
testRunner: "JUnit"
testResultsFiles: "**/testResults.xml"
failTaskOnFailedTests: true
displayName: "Publish Test Results"
- task: PublishCodeCoverageResults@1
inputs:
summaryFileLocation: "**/coverage.xml"
pathToSources: 'PowerShellExcelBDD/ExcelBDD'
failIfCoverageEmpty: true
displayName: "Publish Test Code Coverage"
同样,可读的YAML也很容易理解,步骤上与Java部分CI是一样的。
可以看到这些CI配置不麻烦。
下面是运行效果 Java
最后结语:
以上展示的例子都不复杂,读者如果已经有现成的GitHub库,大可以去试试,Azure DevOps提供了强大的Pipeline编排能力。
但是仍然要指出的是流水线配置往往是一次性工作,调整也并不频繁。持续集成真正的关键在于自动化测试开发,ExcelBDD本身就是支持持续集成的解决方案。根据新功能或者缺陷修复而配套的自动化测试占据更大的比重。再次推荐利用ExcelBDD进行BDD,高效并且高质量。
上面实例中,测试行覆盖率达到了90.6%。
以上是关于利用Azure DevOps建设ExcelBDD的持续集成的主要内容,如果未能解决你的问题,请参考以下文章