一个notests插件,用于将测试套件拆分为并行运行
nose-parallel的Python项目详细描述
帮助分割测试的插件在多台计算机上运行。
在理想情况下,测试套件应该足够快 在没有额外工程的情况下在一台机器上本地运行。这个 当你不能做到这一点的时候,插件可以提供帮助。
这个不会帮助您在不同的计算机上并行运行测试 线程;这就是内置的multiprocess插件 是为了。
这个将帮助您分割测试套件,以便您可以运行 在多台机器上的套件,并且没有相同的测试运行 詹金斯和 multijob 插件,或者像CircleCI这样的ci服务。
安装
pip install nose-parallel
用法
在每台机器上:
- 导出环境变量NODE_TOTAL(运行套件的计算机数)和NODE_INDEX(当前计算机的基于0的索引)
- 使用--with-parallel标志运行nosetests
- 执行一些操作,将所有计算机的结果合并到一起
例如,这就是我们如何在 四机测试集群:
NODE_TOTAL=4NODE_INDEX=1 nosetests --with-parallel
如果不设置这些变量,nose-parallel将执行正确的操作并运行所有测试。 环境变量的circleci和buildkite版本(CIRCLE_NODE_TOTAL和CIRCLE_NODE_INDEX, 或者BUILDKITE_PARALLEL_JOB_COUNT和BUILDKITE_PARALLEL_JOB也分别受本机支持。
如果你想进一步随机化测试的分布,那么 相同的测试用例并不总是在同一个节点上一起运行,您可以 使用--parallel-salt选项或NOSE_PARALLEL_SALT环境变量 指定随机化的salt值(例如,内部版本号、月份的日期)。 在并行构建期间,每个节点上的salt必须相同,否则可能会遗漏一些测试用例。
例如,在Circleci上,您可以执行以下操作:
nosetests --with-parallel --parallel-salt-env CIRCLE_BUILD_NUM
许可证
nose-parallel是在mit许可下发布的。
贡献
- 检查打开的问题或打开一个新的问题,开始围绕功能想法或错误的讨论。
- 分叉github上的存储库,开始对主分支(或其分支)进行更改。
- 发送一个pull请求并对维护程序进行bug操作,直到它被合并并发布。
- 将自己添加到setup.py 中的作者列表中
感谢
- @mahmoudimus,其nose-timer插件基于