使用Xunit插件和Jenkins Piepline显示MSTest .trx文件

时间:2018-09-05 22:43:25

标签: jenkins jenkins-plugins jenkins-pipeline xunit jenkins-mstest

我正在尝试使用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 (
                       ^

3 个答案:

答案 0 :(得分:1)

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

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

'3000'和'1'是xunit-plugin在内部设置的默认值。

答案 1 :(得分:0)

我必须对插件做些不同的操作,因此我会发布解决方案,以防它有所帮助-

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

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

答案 2 :(得分:0)

是否有理由使用xunit插件?我按如下方式使用mstest-plugin,这似乎很好用

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

Test Result Trend