이 Behat에 상당히 익숙하지 않고로드 블록에 빠졌습니다. 돌아 다니기. 나는 문서를보고, 내 직업처럼 인터넷 검색을하고, 컴퓨터를 화재 탈출구에서 벗어나지 않도록 최선을 다하고 있습니다.behhat.yml을 통해 sahi 확장 기능을 활성화하려고 할 때 Behat 2.4 업그레이드 문제 또는 "behat"아래의 인식 할 수없는 옵션 "extensions"- 오류가 발생했습니다.
저는 상당히 복잡한 프로젝트를 진행하고 있으며, 저는 그것을 설정 한 사람이 아닙니다. 그래서 나는 약간의 영역에서 약간의 길을 잃었습니다.
현재 Sahi 드라이버를 사용하려고합니다. 셀레늄이 테스트해야하는 동적 인 형태로 잘라 내기 때문이 아닙니다. 기본 셀렌 드라이버로 테스트를 잘 실행할 수는 있지만 폼 입력시 자바 스크립트 이벤트를 적절히 트리거하지 않기 때문에 테스트가 실패합니다. 특히, 해당 링크에서 다루는 해결 방법을 사용할 수 있지만 브라우저를 집중해야합니다. 즉, 테스트가 소스 또는 xvfb가있는 젠킨스를 통해 실행될 때 실패합니다.
나는 이것이 Sahi 드라이버를 사용하여 해결하려고하는 나의 큰 문제이기 때문에이 모든 것을 설명하고 있습니다. 어느 날 제공 :
내 bahat.yml에서 문서가 말하는 방법을 특정 프로필에 대한 Sahi 드라이버를 활성화하려고하면 무엇을 얻을[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
Unrecognized options "extensions" under "behat"
.
여기에 기본 프로필이고 나는 현재 내 behat.yml에서 함께 일하고 있어요 프로파일은 (약간 대중 소비를 위해 수정) :
default:
paths:
features: 'features'
bootstrap: '%behat.paths.features%/bootstrap'
sahi:
extensions:
Behat\MinkExtension\Extension:
sahi: ~
context:
class: 'FeatureContext'
parameters:
environment: 'staging'
mink: 'sahi'
FWIW, 테스트가 나는 ssh를 VM을에 있습니다 - 나는의 초점에서 브라우저를 계속 가정 (에 X는 다음
$ behat --tags @test_name_tag --profile=sahi
나는 기본 셀레늄 드라이버와 @javascript 태그를 사용하고, 브라우저가 팝업 사용하여 테스트를 실행하고 테스트를 실행하고 통과 코스). 나는 그 아마 과잉 또는 필요하지 중 하나입니다 추측하고있어 비록 내 MinkContext.php, EnvironmentContext.php 및 FeatureContext.php에 use Behat\Mink\Driver\SahiDriver;
을 추가 한
{
"require": {
"behat/behat": "2.4.*@stable",
"behat/mink": "[email protected]",
"behat/mink-extension": "*",
"behat/mink-selenium2-driver": "*",
"behat/mink-sahi-driver": "*"
}
}
:
나는 작곡가를 사용하여 추가 드라이버를 설치 . 그러나이 시점에서 차이를 만드는 것 같지 않습니다. 나는 그것이 있든 없든 같은 오류를 낳는다. 나는 어쩌면exensions
어떤 이유로 도움이 될 수 있습니다라는 기능/부트 스트랩에 디렉토리를 추가 생각했다
<?php
return
array(
'default_session' => 'sahi',
'sahi' => array(
'capabilities' => array(
'browserName' => 'firefox',
'browserVersion' => 7,
),
),
);
:
는 또한 기능/부트 스트랩/밍크에 사는 sahi.php
을 추가했다. 심지어 거기에 sahi.php
라는 파일을 붙입니다. 그것은별로 도움이되지 못했습니다.
나는 모든 것을 다 다루고 있다고 생각합니다. 어떤 도움을 주셔서 미리 감사드립니다. 다른 곳에서 다루어지면, 저에게 직접 안내해주십시오. 왜냐하면 나는 수많은 시간을 보냈고 나를 돕는 어떤 것도 찾지 못했기 때문입니다.
는 업데이트 :
나는 behat, 밍크와 오이의 이전 버전을 제거하고 2.4을 설치, 등 내가 2.3 Behat에서 마이그레이션 "을 통해 자신의 길을 만들어 왔습니다이 https://lestbddphp.wordpress.com/2012/08/31/behatcomposer/에 따라 2.. 워드 프로세서에 4 "(죄송합니다, SO 나를 더 이상 링크를 게시 할 수 있지만, 문서 Behat 공식에의하지 않습니다.)
이 composer.json
내 :
{
"require": {
"behat/behat": "2.4.*@stable",
"behat/mink": "[email protected]",
"behat/mink-goutte-driver": "*",
"behat/symfony2-extension": "*",
"symfony/class-loader": "2.1.*",
"symfony/form": "2.1.*",
"symfony/validator": "2.1.*",
"behat/mink-selenium-driver": "*",
"behat/mink-selenium2-driver": "*",
"behat/mink-extension": "*",
"behat/mink-sahi-driver": "*"
},
"minimum-stability": "dev",
"config": {
"bin-dir": "bin/"
}
}
내가 내
behat.yml
파일을 이동 . 나는 그게 내가 그냥 문서에 주어진 예에 의해 갈 필요가 무엇 완전히 확실하지 않다하지만
default:
paths:
features: 'features'
bootstrap: '%behat.paths.features%/bootstrap'
extensions:
Behat\Symfony2Extension\Extension:
mink_driver: true
kernel:
env: test
debug: true
Behat\MinkExtension\Extension:
default_session: symfony2
sahi: ~
:. 지시에 따라 프로젝트의 루트, 나는 내
default
프로필을 업데이트했습니다.
내 vendor/autoload.php
대체하여 업데이트 된 require_once
require
과 :
<?php
// autoload.php generated by Composer
require __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInit::getLoader();
하지만 파일이 example code in the docs 다르기 때문에 나는이에 의해 조금 혼란 스러워요. 여기에 문서의 줄을 추가하려면 이미있는 줄 대신에 그냥로드하는 것이 좋습니다. (나는 시도했다. 바베드했다.) 나는 완전히 밀집되어 있는가, 아니면 여기서 혼란 스럽거나 오도하는 말인가? 이 작업이 올바르게 수행 되었습니까?
I 앞서 언급 된 바와 같이, I가 features/bootstrap
3 개 컨텍스트 파일 가지고 CLI를 통해 테스트를 실행할 때
FeatureContext.php
EnvironmentContext.php
MinkContext.php
, 난 그것을
--profile
를 통과하고 그것
behat.yml
에 적합한 프로파일을 사용한다. 거의 모든 프로파일에서
FeatureContext
이 사용됩니다.
context:
class: 'FeatureContext'
FeatureContext
는 내가 말할 수있는 것과, EnvironmentContext
및 MinkContext
가져옵니다. 이론적으로 모든 것이 거기에서 작동해야합니다.
오직 그렇지 않습니다. 나는 모든 심포니 물건을 추가하기 전에
$ bin/behat --profile=sahi
[ReflectionException]
Class AppKernel does not exist
,이 얻고 있었다 : 나는 작곡가를 통해 심포니 물건을 추가하는 이유
Warning: require(Behat\Symfony2Extension\Extension): failed to open stream: No such file or directory in /path/to/project/vendor/behat/behat/src/Behat/Behat/Extension/ExtensionManager.php on line 112
Fatal error: require(): Failed opening required 'Behat\Symfony2Extension\Extension' (include_path='/usr/share/pear:/usr/share/php:/usr/share/git core/templates/hooks:.') in /path/to/project/vendor/behat/behat/src/Behat/Behat/Extension/ExtensionManager.php on line 112
입니다. 또한 아마도 노트의
: 내가 예상 할 수있는 것 같다
Notice: Undefined index: environment in /home/lbaron/development/BeHat-Functional/features/bootstrap/FeatureContext.php on line 43
Warning: include(/path/to/project/features/bootstrap/environment/.php): failed to open stream: No such file or directory in /path/to/project/features/bootstrap/FeatureContext.php on line 44
Warning: include(): Failed opening '/path/to/project/features/bootstrap/environment/.php' for inclusion (include_path='/usr/share/pear:/usr/share/php:/usr/share/git-core/templates/hooks:.') in /path/to/project/features/bootstrap/FeatureContext.php on line 44
Catchable fatal error: Argument 1 passed to EnvironmentContext::__construct() must be an array, boolean given, called in /path/to/project/features/bootstrap/FeatureContext.php on line 44 and defined in /path/to/project/features/bootstrap/EnvironmentContext.php on line 27
: 나는 작곡가를 통해 심포니 물건을 설치하기 전에, 그것을 --profile을 통과하는 것을 잊었다 때, 나는이 있어요.
저는 이제 손실되었습니다. 아이디어?
나는 그것을 알아낼 수 있는지 알아보기 위해 끊임없이 노력할 것이지만, 어떤 아이디어/입력이라도 크게 감사 할 것입니다. 다시
업데이트 : behat의
Catchable fatal error: Argument 2 passed to Symfony\Component\BrowserKit\Client::__construct() must be an instance of Symfony\Component\BrowserKit\History, array given, called in /usr/share/pear/mink/src/Behat/Mink/Behat/Context/MinkContext.php on line 163 and defined in /home/lbaron/development/BeHat-Functional/vendor/symfony/browser-kit/Symfony/Component/BrowserKit/Client.php on line 52
현재 상태 :
YML에서 확장 섹션을 제거 나에게이 있습니다.yml :
default:
paths:
features: 'features'
bootstrap: '%behat.paths.features%/bootstrap'
formatter:
parameters:
language: 'en'
extensions:
Behat\MinkExtension\Extension:
sahi: ~
goutte: ~
아! 고맙습니다! 그런 느낌이 들었습니다. 그렇게하고 결과로 돌아올 것입니다. – lmb
업그레이드되어 더 많은 문제가 발생했습니다. 원본 게시물을 세부 정보로 업데이트했습니다. 감사. – lmb