我一直在Codeception YML文件中看到这种情况:
modules:
enabled:
- PhpBrowser:
url: '%URL%'
如何从命令行将“ URL”传递给Codeception?或其他任何方式!
答案 0 :(得分:2)
记录在https://codeception.com/docs/06-ModulesAndHelpers#Dynamic-Configuration-With-Parameters
可以从环境变量动态配置模块。 参数存储应在全局codeception.yml中指定 在params部分中进行配置。可以从加载参数 环境变量,来自yaml(Symfony格式)、. env(Laravel格式), ini或php文件。
使用全局配置文件的params部分 codeception.yml指定如何加载它们。您可以指定几个 要从中加载参数的来源。
示例:从环境中加载参数:
params: - env # load params from environment vars
示例:从YAML文件(Symfony)中加载参数:
params: - app/config/parameters.yml
示例:从php文件(Yii)加载参数
params: - config/params.php
示例:从.env文件(Laravel)加载参数:
params: - .env - .env.testing
一旦加载,参数变量可以用作模块配置 价值观。使用以%换行的变量名作为占位符,并将其 将被其值替换。
假设我们要为云测试服务指定凭据。 我们已经从环境中加载了SAUCE_USER和SAUCE_KEY变量, 现在我们将它们的值传递到WebDriver的配置中:
modules: enabled: - WebDriver: url: http://example.com host: '%SAUCE_USER%:%SAUCE_KEY%@ondemand.saucelabs.com'
参数对于为以下设备提供连接凭据也很有用: db模块(取自Laravel的.env文件):
modules: enabled: - Db: dsn: "mysql:host=%DB_HOST%;dbname=%DB_DATABASE%" user: "%DB_USERNAME%" password: "%DB_PASSWORD%"
如果要在命令行中进行设置,可以这样设置:
URL=http://example.org codecept run
或
export URL=http://example.org
codecept run
以上示例与Bash配合使用,如果您使用其他Shell,则可能需要做其他事情。