利用Azure DevOps建设ExcelBDD的持续集成

在ExcelBDD开源敏捷项目启动了!暨介绍微软Agile+DevOps免费平台-dev.azure.com 一文当中介绍了利用Agile DevOps管理需求。

本文来介绍其中的持续集成建设。

直接进入正题,ExcelBDD的Azure DevOps项目主界面如下:

利用Azure DevOps建设ExcelBDD的持续集成_第1张图片

一图胜千言,上图就是Azure DevOps Pipelines菜单。

在右上角点击“New Pipeline",可以看到如下代码库:

利用Azure DevOps建设ExcelBDD的持续集成_第2张图片

重要提醒:能够接入既有的GitHub库,也就是说在Azure DevOps上建立一个新项目可以对接GitHub的老库,能够免费使用Azure DevOps的Pipeline。

ExcelBDD全部搭建在Azure DevOps上,因此实例选择Azure Repos Git,出现如下界面

利用Azure DevOps建设ExcelBDD的持续集成_第3张图片

这是ExcelBDD开源项目之前已经设置的,点击,得到如下

利用Azure DevOps建设ExcelBDD的持续集成_第4张图片

这里只展示一屏,还有很多,几乎覆盖了当前常见的开发语言和对应配置。

本例选择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

利用Azure DevOps建设ExcelBDD的持续集成_第5张图片

利用Azure DevOps建设ExcelBDD的持续集成_第6张图片

最后结语:

以上展示的例子都不复杂,读者如果已经有现成的GitHub库,大可以去试试,Azure DevOps提供了强大的Pipeline编排能力。

但是仍然要指出的是流水线配置往往是一次性工作,调整也并不频繁。持续集成真正的关键在于自动化测试开发,ExcelBDD本身就是支持持续集成的解决方案。根据新功能或者缺陷修复而配套的自动化测试占据更大的比重。再次推荐利用ExcelBDD进行BDD,高效并且高质量。

上面实例中,测试行覆盖率达到了90.6%。

你可能感兴趣的:(ExcelBDD,azure,devops)