有没有一种方法可以在构建管道期间通过 Nunit(或类似的)发布 PS 脚本分析器结果?

Is there a way I can publish PS Script Analyzer results via Nunit (or similar) during a build pipeline?

我想通过 Nunit 发布我的静态分析结果。我正在使用 Pester 这样做,但是这是在 Pester 的配置设置中设置的。在使用 PS 脚本分析器时,有什么方法可以做同样的事情吗?我在文档中找不到有关它的信息。

这是我当前的代码:

- task: PowerShell@2
  inputs:
        targetType: 'inline'
        script: | 
                Install-Module -Name PSScriptAnalyzer
                Invoke-ScriptAnalyzer -Path *

在Azure DevOps中,我们通常使用Publish Test Results task将测试结果发布到Azure Pipelines。我们可以使用您选择的支持您需要的结果格式的测试运行器。支持的结果格式包括 CTest、JUnit(包括 PHPUnit)、NUnit 2、NUnit 3、Visual Studio Test (TRX) 和 xUnit 2。

# Publish Test Results
# Publish test results to Azure Pipelines
- task: PublishTestResults@2
  inputs:
    #testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit, cTest
    #testResultsFiles: '**/TEST-*.xml' 
    #searchFolder: '$(System.DefaultWorkingDirectory)' # Optional
    #mergeTestResults: false # Optional
    #failTaskOnFailedTests: false # Optional
    #testRunTitle: # Optional
    #buildPlatform: # Optional
    #buildConfiguration: # Optional
    #publishRunAttachments: true # Optional

是的,您需要使用外部脚本才能执行此操作。您需要能够将结果转换为 Pester 测试格式 (XML),然后使用 Nunit 发布这些结果。

本文进一步详细介绍了此过程: https://mathieubuisson.github.io/psscriptanalyzer-first-class-citizen/

您需要使用此特定模块将 Pester 结果转换为 XML 格式: https://github.com/MathieuBuisson/PowerShell-DevOps/tree/master/Export-NUnitXml