Buildbot解析Python单元测试结果

Ric*_*lon 8 python parsing unit-testing 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
Run Code Online (Sandbox Code Playgroud)

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

Yau*_*ich 3

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

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

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

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

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

[编辑]

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

话虽如此,我怀疑除了基本的正则表达式解析之外,改进实际的解析器是否很容易。

如果您仍然想追求文本解析方法 - 您可能需要枚举并描述您想要覆盖/支持的“所有类型的 Python 单元测试格式”。如果您幸运地以上下文无关语法的形式进行这样的描述,那么也许您可以为其开发一个解析器,它将以语言的形式涵盖“那些”情况。

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