运行 2 个具有不同特征的 Behat 配置文件合并为 1 个结果

Run 2 Behat profiles with different features into 1 result

我有 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 调用者,但它们也意味着如果第一次测试失败,则第二次测试不是 运行。

如何同时保留两者:

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

也许是这样的?

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

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