运行 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
调用者,但它们也意味着如果第一次测试失败,则第二次测试不是 运行。
如何同时保留两者:
- 两个测试都必须运行
- 退出代码必须是最后一次失败(或者
1
如果有任何失败)
我不想让 run-tests
更复杂,所以这比 Bash 更像是一个 Behat 问题。我可以告诉 Behat 运行 2 个具有不同特征的配置文件和 return 组合结果吗?
也许是这样的?
result=0
cmds1 || result=$?
echo
cmds2 || result=$?
exit $result
如果其中一个命令失败,失败的退出代码将传播给调用者。 (如果两者都失败了,最后一个失败就是我们传回给调用者的失败。)当测试成功时,我们不会触及 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
调用者,但它们也意味着如果第一次测试失败,则第二次测试不是 运行。
如何同时保留两者:
- 两个测试都必须运行
- 退出代码必须是最后一次失败(或者
1
如果有任何失败)
我不想让 run-tests
更复杂,所以这比 Bash 更像是一个 Behat 问题。我可以告诉 Behat 运行 2 个具有不同特征的配置文件和 return 组合结果吗?
也许是这样的?
result=0
cmds1 || result=$?
echo
cmds2 || result=$?
exit $result
如果其中一个命令失败,失败的退出代码将传播给调用者。 (如果两者都失败了,最后一个失败就是我们传回给调用者的失败。)当测试成功时,我们不会触及 result
变量。如果两者都成功,则它保持为零(成功)。