微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GNU 并行:针对服务运行测试 - 尽早失败

如何解决GNU 并行:针对服务运行测试 - 尽早失败

我正在使用 parallel 将针对服务的自动测试并行化,作为构建管道的一部分。 本质上,我目前的方法是使用以下方法。 最后,应该发生什么:

  • 一旦两个测试都成功 -> 成功
  • 一旦任何一项工作失败 -> 终止所有并返回错误

然而,目前发生的情况是,该服务当然会无限期地运行(除非取消),所以这就是为什么我在下面设置成功=2。但是,如果测试失败,这将永远不会触发,因此我必须添加 --timeout 120。但是,这只会导致在测试失败后,我必须再等 2 分钟才能收到该信息的解决方法

parallel --halt Now,success=2 -j3 ::: start_service.py test1.py test2.py

编辑: 事实证明,认情况下并行使用 apt-get 安装在 2016xx 版本中。在 debian buster 上从源代码安装后;我至少可以开始使用以下内容

parallel --halt Now,done=2 -j3 ::: start_service.py test1.py test2.py

然而,即使两次测试成功,这也会返回非零的存在状态。

解决方法

你的想法是正确的,但关注的是错误的结论。

不要只关注成功,而要关注失败:

start_service.py &
# wait until service is ready then run:
parallel --halt now,fail=1 -j0 ::: test1.py test2.py
# stop service
stop_service.py

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。