一个notests插件,用于将测试套件拆分为并行运行

nose-parallel的Python项目详细描述


帮助分割测试的插件在多台计算机上运行。

在理想情况下,测试套件应该足够快 在没有额外工程的情况下在一台机器上本地运行。这个 当你不能做到这一点的时候,插件可以提供帮助。

这个不会帮助您在不同的计算机上并行运行测试 线程;这就是内置的multiprocess插件 是为了。

这个将帮助您分割测试套件,以便您可以运行 在多台机器上的套件,并且没有相同的测试运行 詹金斯和 multijob 插件,或者像CircleCI这样的ci服务。

安装

pip install nose-parallel

用法

在每台机器上:

  1. 导出环境变量NODE_TOTAL(运行套件的计算机数)和NODE_INDEX(当前计算机的基于0的索引)
  2. 使用--with-parallel标志运行nosetests
  3. 执行一些操作,将所有计算机的结果合并到一起

例如,这就是我们如何在 四机测试集群:

NODE_TOTAL=4NODE_INDEX=1 nosetests --with-parallel

如果不设置这些变量,nose-parallel将执行正确的操作并运行所有测试。 环境变量的circleci和buildkite版本(CIRCLE_NODE_TOTALCIRCLE_NODE_INDEX, 或者BUILDKITE_PARALLEL_JOB_COUNTBUILDKITE_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
  • 中的作者列表中

感谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过编程将图像插入Word文档?   java Maven在Quickstart原型中更改jUnit版本   OS X上的eclipse java版本和路径   java在hibernate中将具有依赖对象的类映射到单独的表   JavaJSF2如何在复合组件子组件完成操作后执行操作?   java无法从列表<节点>强制转换为列表<元素>   java如何将数组链接到方法   检查数组中是否存在一个范围内的所有值的最佳方法是什么?(爪哇)   redis Java:我们应该尽快退出trywithresource块来释放资源吗?   对象不会出现在java swing中的按键上   SQLServerJava。sql。SQLException:客户端尝试签出连接已超时   java如何使用JPA以线程安全的方式保存或更新对象?   java如何在不显示滚动条的情况下消除SWT ScrolledComposite中浪费的空间   如何在Eclipse中从Java编辑器显示scala文档?