如何解决GNU 并行:针对服务运行测试 - 尽早失败
我正在使用 parallel 将针对服务的自动测试并行化,作为构建管道的一部分。 本质上,我目前的方法是使用以下方法。 最后,应该发生什么:
- 一旦两个测试都成功 -> 成功
- 一旦任何一项工作失败 -> 终止所有并返回错误
然而,目前发生的情况是,该服务当然会无限期地运行(除非取消),所以这就是为什么我在下面设置成功=2。但是,如果测试失败,这将永远不会触发,因此我必须添加 --timeout 120。但是,这只会导致在测试失败后,我必须再等 2 分钟才能收到该信息的解决方法。
编辑: 事实证明,默认情况下并行使用 apt-get 安装在 2016xx 版本中。在 debian buster 上从源代码安装后;我至少可以开始使用以下内容:
然而,即使两次测试成功,这也会返回非零的存在状态。
解决方法
你的想法是正确的,但关注的是错误的结论。
不要只关注成功,而要关注失败:
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 举报,一经查实,本站将立刻删除。