jenkins 如何通过Pytest验证代码覆盖率

tktrz96b  于 2023-04-29  发布在  Jenkins
关注(0)|答案(1)|浏览(160)

我想出了下面的代码(jenkins管道)来运行UT并为我的Python应用程序生成覆盖率报告。现在,如果代码覆盖率低于80%,我希望构建失败,但不确定是否有现成的库来验证Python的覆盖率报告,比如Java项目的Jacoco或Cobertura。还是我的理解不正确?

def call(Map params = [:]) {
    dir(params.testDir) {
        if (params.env == 'python') {
            sh "python -m pytest --verbose --cov=${params.testDir} --cov-report=xml:coverage.xml --cov-report html:coverage --junit-xml=unittest.xml test"
            junit testResults: "*.xml", skipPublishingChecks: true
        }
    }
}

我看到了这个代码片段,但coberturaAdapter是否适用于我的情况,因为我使用pytest?

script {
            def failed = publishCoverage (failUnhealthy: true, 
                        globalThresholds: [[thresholdTarget: 'Package', unhealthyThreshold: 50.0]],
                        adapters: [coberturaAdapter(
                            mergeToOneReport: true, 
                            path: '**/*.cobertura.xml')])
            if (failed) {
                currentBuild.result = 'FAILURE'
                currentBuild.displayName = "${currentBuild.displayName} Coverage"
                currentBuild.description = "Coverage lower than 50%"
            }
        }
iugsix8n

iugsix8n1#

你可以添加一个pytest参数:--cov-fail-under=MIN使构建失败。
或者,您也可以在执行pytest之后添加后续命令:

coverage report --fail-under=MIN

阅读更多: www.example. com 和 www.example.com

相关问题