亚单位
子单元是测试结果的流协议。
该议定书有两大修订。版本1是一个普通的人类
可读性强,但在高度并行测试方面有重大缺陷
担心-它没有空间同时进行发现和执行,
多路复用时需要大量缓冲,并且脆弱-损坏
字节可能会导致整个流的位置错误。增加1.1版
二进制流的封装减轻了一些问题,但是
核心仍然存在。
版本2具有版本1的许多优点
嵌入到常规文本流(例如,来自构建系统)中,它仍然
模型xunit风格的测试执行。它还解决了
版本1-版本2可以在没有过多缓冲的情况下进行多路复用(在
它有一个定义良好的恢复机制来处理
损坏的流(例如,两个进程写入同一个流
同时,或者流生成器遇到错误时。
有关两个协议版本的详细信息,请参见"协议"部分
本文档的。
子单元带有处理子单元流和
Python、C、C++和shell的语言绑定。绑定很容易编写
对于其他语言。
< DL>
使用子单元可以轻松地完成许多有用的事情:
> UL>
测试聚合:可以组合单独运行的测试,然后
一起报告/展示。例如,来自不同语言的测试
可以显示为一个无缝的整体,并在多台计算机上运行测试
可通过多路复用器聚合成单个流。
测试存档:稍后可能会记录并重播测试运行。
测试隔离:可能崩溃或以其他方式与每个
其他的可以单独运行然后聚合,而不是干扰
相互之间或需要进行临时测试->;跑步者报告协议。
网格测试:子单元可以作为必要的序列化和
反序列化以获取要在中报告的分布式计算机上的测试运行
实时。
子单元提供以下过滤器:
> UL>
tap2subunit-将perl的testanythingprotocol转换为subunit。
subunit2csv-将子单元流转换为csv。
subunit2disk-将子单元流导出到磁盘上的文件。
subunit2pyunit-将子单元流转换为pyunit测试结果。
subunit2gtk-在gtk中显示子单元流。
subunit2junitxml-将子单元流转换为junit的xml格式。
亚单位差异-比较两个亚单位流。
子单元过滤-过滤子单元流中的测试。
子单元ls-列出子单元流中存在的测试信息。
子单元统计-生成子单元流的摘要。
子单元标记-从流中添加或移除标记。