Buildbot解析Python单元测试结果

时间:2010-10-15 15:15:35

标签: python unit-testing parsing buildbot

我有一个测试套件,以Python单元测试格式输出测试结果:http://docs.python.org/library/unittest.html

是否有可以解析此表单的现有Buildbot模块/插件?

示例:

DigitalReadWrite_02                                         ... ok
DigitalReadWrite_03                                         ... ok
DigitalReadWrite_04                                         ... ok
PWMoutput_02  (PWM=128 50% LOW 49% HIGH)                    ... ok
PWMoutput_03  (PWM=128 50% LOW 49% HIGH)                    ... ok
PWMoutput_04  (PWM=128 50% LOW 49% HIGH)                    ... ok
--------------------------
Ran 6 tests in 1.652s

OK

我编写了一个自定义解析器,但它只有基本情况。是否值得努力使其全面适用于所有类型的Python单元测试格式。

1 个答案:

答案 0 :(得分:3)

不,开发解析器没有意义。您可以从 runner.py 模块中的类中获取等效信息。

考虑使用自定义逻辑(python 2.7)扩展 TextTestRunner TextTestResult 这两个类。您列出的输出由 TextTestResult 生成。

或者,您只能扩展 TextTestResult 并更改类属性 TextTestRunner.resultclass ,将其设置为新的扩展类名称。

您可以从TextTestResult中提取并放入某些词典列表的数据更大或等同于您的解析器能够提取的数据。

单元测试框架由于其灵活的设计而允许这样的技巧。 希望这有用。

[修改

我会发现到目前为止发布您的结果(例如,作为github上的开源代码)可能对找到您问题的人非常有用!

话虽如此,我怀疑在基本的regexp解析之外改进实际的解析器会很容易。

如果你仍然想要追求文本解析方法 - 你可能需要枚举和描述你想要覆盖/支持的“所有类型的Python单元测试格式”。如果你很幸运能够以无上下文语法的形式提供这样的描述,那么也许你可以为它开发一个解析器,将“那些”案例作为一种语言形式。

请注意我的注意事项:如果简单的正则表达式没有涵盖文本解析,并且您有可能尝试解析一些不规则的(上下文相关的)语言 - 很可能您会发现它非常难以完成。