Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将具有不同功能的2个行为配置文件运行到1个结果中_Bash_Behat_Exit Code - Fatal编程技术网

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

Bash 将具有不同功能的2个行为配置文件运行到1个结果中,bash,behat,exit-code,Bash,Behat,Exit Code,我有两个非常不同的行为模式: simple: suites: default: contexts: - rdx\behatvars\BehatVariablesContext - SimpleFeatureContext extensions: rdx\behatvars\BehatVariablesExtension: ~ proxy: suites: default: contexts:

我有两个非常不同的行为模式:

simple:
  suites:
    default:
      contexts:
        - rdx\behatvars\BehatVariablesContext
        - SimpleFeatureContext
  extensions:
      rdx\behatvars\BehatVariablesExtension: ~
proxy:
  suites:
    default:
      contexts:
        - ProxyFeatureContext
simple
加载一个本地上下文,
proxy
加载另一个本地上下文<代码>简单必须有扩展名,
代理
不能有扩展名

结合起来,它们运行的测试应该完全通过。目前,这是我的
运行测试
脚本:

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
它不仅难看,而且不能正常工作。
&&
确保将正确的结果传递给
运行测试调用方,但这也意味着如果第一个测试失败,则第二个测试不会运行

我如何保持这两个:

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

我不想让
运行测试
变得更复杂,所以这更像是一个行为问题而不是Bash。我可以告诉Behat运行两个具有不同功能的配置文件并返回组合结果吗?

可能是这样的吗

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

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

这使得测试脚本更加复杂。我正在寻找一个Behat解决方案。如果脚本是由Bash解析的,我看不到一种方法可以让您现有的脚本按照您的要求执行。我也不认为这更复杂。这很容易扩展到更多的测试,一旦你掌握了基本概念,就很容易掌握。不过,我对Behat完全不熟悉。我在上面看到的YAML和JSON的邪恶混合让我觉得这样可能更好;但是当然,这个答案是在黑暗中拍摄的,如果你认为它根本不合适,我将非常乐意删除它。它是合适的,但我仍然希望有一个完整的Behat解决方案=)它比“YAML和JSON的邪恶混合”更糟糕,但它也非常酷。谢谢你!。。。哦,PHP。最好保持清醒。谢谢你的跟进。