在 Jenkins 管道中使用 Xunit 插件显示 MSTest .trx 文件

MSTest .trx file display using Xunit Plugin and Jenkins Piepline

我正在尝试使用 Xunit 插件和 Jenkins 管道显示 MStest、Nunit3、Nunit2 结果,但没有成功。 我找不到 Xunit 插件的正确文档及其所有必需的参数。

我得到了以下链接,但它们没有太大帮助 https://www.cloudbees.com/blog/xunit-and-pipeline https://wiki.jenkins.io/display/JENKINS/xUnit+Plugin

有谁知道如何使用 Xunit 插件在 jenkins 管道中显示 mstest、nunit3 和 nunit2 结果?

以下是我用于 MStest 报告解析并出错的代码。 我对 Jenkins 中的管道还很陌生,非常感谢任何帮助/指点!提前致谢!!

以下是我的流水线代码

pipeline {
    agent any
    stages {
        stage('Copy Test Reports') {
            agent {
                node {
                    label 'test'
                    customWorkspace "C:\jenkins\workspace\tests"
                }
            }
            steps {
                echo 'Hello world!'
                bat '''copy \\Precheck.xml .
                copy \\*.trx .'''
            }
            post {
                always {
                    xunit (
                        thresholds: [$class: 'FailedThreshold', unstableThreshold: '1'],
                        tools: [$class: 'MSTest', pattern: '*.trx']
                    )
                }
            }
        }        
    }
}


Error:
Missing required parameter: "thresholdMode" @ line 19, column 21.
                       xunit (
                       ^

WorkflowScript: 19: Missing required parameter: "testTimeMargin" @ line 19, column 21.
                       xunit (
                       ^

我 运行 遇到了同样的问题,尽管有 GoogleTest 报告。 将缺少的参数添加到您的 xunit() 调用中应该可以解决问题:

                xunit (
                    testTimeMargin: '3000',
                    thresholdMode: 1,
                    thresholds: [$class: 'FailedThreshold', unstableThreshold: '1'],
                    tools: [$class: 'MSTest', pattern: '*.trx']
                )

“3000”和“1”是 xunit 插件内部设置的默认值。

我不得不对插件进行一些不同的处理,所以我发布了我的解决方案以防它有帮助 -

xunit(
    [MSTest(deleteOutputFiles: true,
            failIfNotNew: true,
            pattern: '*.trx',
            skipNoTestFiles: false,
            stopProcessingIfError: true)
    ])

请注意,这需要您的 trx 文件位于工作区的根目录中。如果不是,您需要将它们复制到那里。

有理由使用 xunit-plugin 吗?我按如下方式使用 mstest-plugin,这似乎工作正常

mstest testResultsFile:"**/*.trx", keepLongStdio: true