我想用
environment-variable-behat-params
覆盖我的
YAML
:
my_profile:
suites:
domain:
contexts:
- MyContext:
- my_config:
setting_setting: data
other_setting_setting: other_data
这是导出命令:
export BEHAT_PARAMS='{"suites":{"domain":{"contexts":{"MyContext":{"my_config":{"my_setting":"on"}}}}}}'
这是PHP代码:
/** @BeforeSuite */
public static function prepare(BeforeSuiteScope $scope) {
$my_settings = $scope->getEnvironment()
->getContextClassesWithArguments()['MyContext'][0];
if (isset($my_settings['my_setting']) && $my_settings['my_setting'] == 'on') {
//do something here
}
}
似乎与文件相符,但是
my_setting
残余
off
而不是更新到
on
。
如果我尝试使用根级别为
my_profile
这样地:
my_profile:
my_config:
setting_setting: data
下面是导出命令:
export BEHAT_PARAMS='{"my_config":{"my_setting":"on"}}'
然后我得到这个错误:
在ArrayNode.php第311行中:
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
无法识别的选项“测试工作”下的“我的设置”
异常跟踪:
Symfony\Component\Config\Definition\ArrayNode->normalizeValue(),位于/sites/scorecard/vendor/Symfony/Config/Definition/BaseNode.php:368
Symfony\Component\Config\Definition\BaseNode->normalize(),位于/sites/scorecards/vendor/Symfony/Config/Definition/Processor.php:35
Symfony\Component\Config\Definition\Processor->process(),位于/sites/scorecard/vendor/behat/behat/src/behat/Testwork/ServiceContainer/ContainerLoader.php:81
Behat\Testwork\ServiceContainer\ContainerLoader->processConfig(),位于/sites/scorecard/vendor/Behat/Behat/src/Behat/Testwork/ServiceContainer/ContainerLoader.php:65
Behat\Testwork\ServiceContainer\ContainerLoader->load(),位于/sites/scorecard/vendor/Behat/Behat/src/Behat/Testwork/Cli/Application.php:185
Behat\Testwork\Cli\Application->createContainer(),位于/sites/scorecard/vendor/Behat/Behat/src/Behat/Testwork/Cli/Application.php:161
Behat\Testwork\Cli\Application->createCommand(),位于/sites/scorecard/vendor/Behat/Behat/src/Behat/Testwork/Cli/Application.php:122
Behat\Testwork\Cli\Application->doRun(),位于/sites/scorecard/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run(),位于/sites/scorecards/vendor/behat/behat/bin/behat:34
.. 我该怎么解决?