Behat/Mink 테스트를 실행하면서 동적 값, 특히 name
을 구문 분석 할 수있는 방법이 있는지 궁금합니다. Selenium2 기능이있는 Yml 구성 파일에 추가Saucelabs 용 Mink Extension.php (Selenium2)를 통한 Behat/Mink Yml 파일 구성의 구문 분석
behat.yml
파일은 파일에서 Selenium 2 Capabilities 매개 변수가있는 Behat/Mink/Extension
확장 파일을 사용합니다. Extension.php file
내
default:
context:
class: 'FeatureContext'
extensions:
Behat\MinkExtension\Extension:
base_url:
javascript_session: 'selenium2'
goutte:
selenium2:
browser: firefox
wd_host: <sauce username>:<accesscode>@ondemand.saucelabs.com/wd/hub
capabilities: { "platform": "Windows 7" , "version": "21" , "name":"Test" }
는 다음 MinkExtension 디렉토리에 Extension.php
에서 https://github.com/Behat/MinkExtension/blob/2.0/src/Behat/MinkExtension/Extension.php
arrayNode('selenium2')->
children()->
scalarNode('browser')->
defaultValue(isset($config['selenium2']['browser']) ? $config['selenium2']['browser'] : '%behat.mink.browser_name%')->
end()->
arrayNode('capabilities')->
normalizeKeys(false)->
children()->
scalarNode('browserName')->
defaultValue(isset($config['selenium2']['capabilities']['browserName']) ? $config['selenium2']['capabilities']['browserName'] : 'firefox')->
end()->
scalarNode('version')->
defaultValue(isset($config['selenium2']['capabilities']['version']) ? $config['selenium2']['capabilities']['version'] : "9")->
end()->
scalarNode('platform')->
defaultValue(isset($config['selenium2']['capabilities']['platform']) ? $config['selenium2']['capabilities']['platform'] : 'ANY')->
end()->
scalarNode('browserVersion')->
defaultValue(isset($config['selenium2']['capabilities']['browserVersion']) ? $config['selenium2']['capabilities']['browserVersion'] : "9")->
end()->
scalarNode('browser')->
defaultValue(isset($config['selenium2']['capabilities']['browser']) ? $config['selenium2']['capabilities']['browser'] : 'firefox')->
end()->
scalarNode('ignoreZoomSetting')->
defaultValue(isset($config['selenium2']['capabilities']['ignoreZoomSetting']) ? $config['selenium2']['capabilities']['ignoreZoomSetting'] : 'false')->
end()->
scalarNode('name')->
defaultValue(isset($config['selenium2']['capabilities']['name']) ? $config['selenium2']['capabilities']['name'] : 'Behat Test')->
end()->
scalarNode('deviceOrientation')->
defaultValue(isset($config['selenium2']['capabilities']['deviceOrientation']) ? $config['selenium2']['capabilities']['deviceOrientation'] : 'portrait')->
end()->
scalarNode('deviceType')->
defaultValue(isset($config['selenium2']['capabilities']['deviceType']) ? $config['selenium2']['capabilities']['deviceType'] : 'tablet')->
end()->
scalarNode('selenium-version')->
defaultValue(isset($config['selenium2']['capabilities']['selenium-version']) ? $config['selenium2']['capabilities']['selenium-version'] : '2.31.0')->
end()->
scalarNode('max-duration')->
defaultValue(isset($config['selenium2']['capabilities']['max-duration']) ? $config['selenium2']['capabilities']['max-duration'] : '300')->
end()->
booleanNode('javascriptEnabled')->end()->
booleanNode('databaseEnabled')->end()->
booleanNode('locationContextEnabled')->end()->
booleanNode('applicationCacheEnabled')->end()->
booleanNode('browserConnectionEnabled')->end()->
booleanNode('webStorageEnabled')->end()->
booleanNode('rotatable')->end()->
booleanNode('acceptSslCerts')->end()->
booleanNode('nativeEvents')->end()->
booleanNode('passed')->end()->
booleanNode('record-video')->end()->
booleanNode('record-screenshots')->end()->
booleanNode('capture-html')->end()->
booleanNode('disable-popup-handler')->end()->
arrayNode('proxy')->
children()->
scalarNode('proxyType')->end()->
scalarNode('proxyAuthconfigUrl')->end()->
scalarNode('ftpProxy')->end()->
scalarNode('httpProxy')->end()->
scalarNode('sslProxy')->end()->
end()->
validate()->
ifTrue(function ($v) {
return empty($v);
})->
thenUnset()->
end()->
end()->
arrayNode('firefox')->
children()->
scalarNode('profile')->
validate()->
ifTrue(function ($v) {
return !file_exists($v);
})->
thenInvalid('Cannot find profile zip file %s')->
end()->
end()->
scalarNode('binary')->end()->
end()->
end()->
arrayNode('chrome')->
children()->
arrayNode('switches')->
prototype('scalar')->end()->
end()->
scalarNode('binary')->end()->
arrayNode('extensions')->
prototype('scalar')->end()->
end()->
end()->
end()->
end()->
end()->
scalarNode('wd_host')->
defaultValue(isset($config['selenium2']['wd_host']) ? $config['selenium2']['wd_host'] : 'http://localhost:4444/wd/hub')->
end()->
end()->
end()->
arrayNode('saucelabs')->
children()->
scalarNode('username')->
defaultValue(getenv('SAUCE_USERNAME'))->
end()->
scalarNode('access_key')->
defaultValue(getenv('SAUCE_ACCESS_KEY'))->
end()->
booleanNode('connect')->
defaultValue(isset($config['saucelabs']['connect']) ? 'true' === $config['saucelabs']['connect'] : false)->
end()->
scalarNode('browser')->
defaultValue(isset($config['saucelabs']['browser']) ? $config['saucelabs']['browser'] : 'firefox')->
end()->
arrayNode('capabilities')->
children()->
scalarNode('name')->
defaultValue(isset($config['saucelabs']['name']) ? $config['saucelabs']['name'] : 'Behat feature suite')->
end()->
scalarNode('platform')->
defaultValue(isset($config['saucelabs']['platform']) ? $config['saucelabs']['platform'] : 'Linux')->
end()->
scalarNode('version')->
defaultValue(isset($config['saucelabs']['version']) ? $config['saucelabs']['version'] : '21')->
end()->
scalarNode('deviceType')->
defaultValue(isset($config['saucelabs']['deviceType']) ? $config['saucelabs']['deviceType'] : null)->
end()->
scalarNode('deviceOrientation')->
defaultValue(isset($config['saucelabs']['deviceOrientation']) ? $config['saucelabs']['deviceOrientation'] : null)->
, 그것은 behat.yml
위에 해당 파일의 정보를 분석하는 배열의 세트로 selenium2.xml
파일을로드합니다. 이 말과 함께
scalarNode('name')-> defaultValue(isset($config['selenium2']['capabilities']['name']) ? $config['selenium2']['capabilities']['name'] : 'Behat Test')->
:
은 내가 YML 파일에 지정된 Selenium2 기능에서 매개 변수가없는 경우 Extension.php
배열 이름에 따라 기본값을 할당합니다 것으로 나타났습니다 테스트가 실행되는 동안 name
내에서 제목을 구문 분석하기 위해 내 로컬 디렉토리에서 Behat/Mink 기능 테스트 <test>.feature
의 이름을 사용할 수있는 방법이 있는지 궁금합니다.