测试平行化器
paratest的Python项目详细描述
Tests | |
Downloads | |
About | |
Status |
并行化测试执行。
它允许在不同的环境中并行执行集成/验收测试。这样他们就不用花太多时间来完成。
它基于插件来支持不同的语言或平台。
paratest可以在任何连续集成服务器下运行,如Jenkins、TeamCity、Go-CD、Bamboo等。
为什么要准备?
几乎所有的测试运行程序都允许并行化测试执行,所以…为什么要并行化?
嗯…在某些情况下,由于依赖关系,测试执行无法并行化:数据库访问、遗留代码、文件创建等。然后,无论何时需要测试它们,都需要创建一个完整的工作区
这可能是一项艰巨的任务,可悲的是,paratest在这方面无能为力。
但是有一些脚本来克隆现有的工作空间,PARATEST可以在任意数量的工作空间之间划分测试,按需创建它们,并在它们上运行测试。资源有限。
paratest的另一个优点是测试顺序:paratest会记住每次测试所花费的时间,并对它们进行重新排序,以充分利用您的基础设施。
最后,Paratest可以重试失败的测试,以避免不稳定的测试
用法
首先,您需要两件事:
- 一个消息来源。这意味着要有一个包含创建工作区指令的源
- 一些用于设置/删除工作区的脚本这应该将源代码转换为工作区。
然后,Paratest将调用安装脚本来创建工作区,并将它们之间的测试运行并行化
当前插件
paratest处于早期开发阶段,仍然没有插件可以工作。这只是概念的证明。
贡献
插件
编写插件非常容易。可以将paratest-dummy作为示例。只需要两个步骤:
编写插件方法
目前,只需要一种方法:
def find(path, test_pattern, file_pattern, output_path)
它应该为元组返回dict或生成器。
注册入口点
第二步是使用入口点find在组paratest中创建一个pip包这应该在setup.py文件中完成。示例:
from setuptools import setup, find_packages setup( name='whatever', version='0.0.1', entry_points={ 'paratest': 'find = whatever:find' } )