gpt4 book ai didi

buildbot - 在 buildbot 中显示测试计数

转载 作者:行者123 更新时间:2023-12-02 09:36:39 24 4
gpt4 key购买 nike

我对 stats that Buildbot provides 不是特别满意。我知道它是用于构建而不是测试 - 这就是为什么它有步骤的概念,但没有测试的概念。在很多情况下,您仍然需要从构建结果中测试统计数据。例如,在比较不同平台上跳过和失败的测试以估计更改的影响时。

那么,需要什么才能让 Buildbot 在结果中显示测试计数?
最简单的方法是什么,让一个对 Buildbot 一无所知的人可以在 15 分钟内完成此操作?

最佳答案

根据您想要如何处理测试结果以及如何呈现测试结果,Buildbot 确实提供了一个 Test 步骤,buildbot.steps.shell.Test

我如何将它用于构建环境的示例:

from buildbot.steps import shell

class CustomStepResult(shell.Test):
description = 'Analyzing results'
descriptionDone = 'Results analyzed'

def __init__(self, log_file = None, *args, **kwargs):
self._log_file = log_file
shell.Test.__init__(self, *args, **kwargs)
self.addFactoryArguments(log_file = log_file)

def start(self):
if not os.path.exists(self._log_file):
self.finished(results.FAILURE)
self.step_status.setText('TestResult XML file not found !')
else:
import xml.etree.ElementTree as etree
tree = etree.parse(self._log_file)
root = tree.getroot()

passing = len(root.findall('./testsuite/testcase/success'))
skipped = len(root.findall('./testsuite/testcase/skip'))
fails = len(root.findall('./testsuite/error')) + len(root.findall('./testsuite/testcase/error')) + len(root.findall('./testsuite/testcase/failure'))

self.setTestResults(total = fails+passing+skipped, failed = fails, passed = passing)
## the final status for WARNINGS is green but the step itself will be orange
self.finished(results.SUCCESS if fails == 0 else results.WARNINGS)
self.step_status.setText(self.describe(True))

在配置工厂中,我创建了一个步骤,如下所示:

factory.addStep(CustomStepResult(log_file = log_file))

基本上,我会覆盖默认的 Test shell 步骤并传递包含测试结果的自定义 XML 文件。然后,我查找“通过/失败/跳过”结果节点,并相应地在瀑布中显示结果。

Sample Test step with the statistics

关于buildbot - 在 buildbot 中显示测试计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com