将具有不同功能的2个Behat配置文件运行到1个结果中

时间:2016-03-30 17:14:37

标签: bash behat exit-code

我有2个截然不同的Behat个人资料:

simple:
  suites:
    default:
      contexts:
        - rdx\behatvars\BehatVariablesContext
        - SimpleFeatureContext
  extensions:
      rdx\behatvars\BehatVariablesExtension: ~
proxy:
  suites:
    default:
      contexts:
        - ProxyFeatureContext

simple加载一个本地上下文,proxy加载另一个。 simple必须有扩展名,proxy一定不能。

组合起来,他们运行的测试应该完全通过。目前,这是我的run-tests脚本:

vendor/bin/behat --profile=proxy --format-settings='{"paths":false}' features/proxy.feature &&
echo &&
vendor/bin/behat --profile=simple --format-settings='{"paths":false}' features/simple.feature

它不仅难看,而且不能正常工作。 &&确保将正确的结果传递给run-tests调用者,但它们也意味着如果第一次测试失败,则不会运行第二次测试。

我如何保持两者:

  • 两个测试必须运行
  • 退出代码必须是最后一次失败(或1,如果有失败)

我不想让run-tests更复杂,所以这比Bash更像是一个Behat问题。我可以告诉Behat运行具有不同功能的2个配置文件并返回合并结果吗?

1 个答案:

答案 0 :(得分:0)

也许是这样的事情?

result=0
cmds1 || result=$?
echo
cmds2 || result=$?
exit $result

如果其中一个命令失败,则失败的退出代码将传播给调用者。 (如果两者都失败,则最后一次失败是我们传回给调用者的失败。)当测试成功时,我们不会触及result变量。如果两者都成功,则保持为零(成功)。