2011-03-15 3 views
3

setUpBeforeClass()를 사용하여 db 연결을 설정하고 일부 로깅을 수행하려고하지만 테스트가 실행되기 전에 호출되지 않습니다. 나는 다음과 같습니다PHPUnit과 Selenium : setUpBeforeClass()가 호출되지 않았습니다.

class TestSetup extends PHPUnit_Extensions_SeleniumTestCase { 
    public static function setUpBeforeClass() { 
     //do some setup stuff here for all my tests 
    } 
    protected function setUp() { 
     $this->setBrowserUrl('http://' . $this->deviceIp); 
    } 
    protected function testOne() { 
     //do a test here 
    } 
    protected function testTwo() { 
     //do a test here 
    } 
} 

내가 한 일부 phpunit을/프레임 워크/TestSuite.php을 파고 라인 (660)에 $ this-> 테스트 케이스는 부울 (거짓)입니다 있음을 확인했다. 그러나 그것이 진실이어야하는지 아니면 __construct()가 아닌 다른 곳에서 일어나야 하는지를 이해할 수는 없습니다.

나는 여기 약간의 머리를 쓰고 있으므로 도움을 주시면 대단히 감사하겠습니다.

기타 도움이되는 정보를 제공해주십시오.

조쉬

답변

3

나는 워드 프로세서에서 아무것도 찾을 수 없습니다하지만 코드가 당신과 함께 동의하는 것 같다.

PHPUnit/Extensions/SeleniumTestCase.php 실행 방법 (289+ 이상)에는 setUpBeforeClass (또는 그렇게 할 수있는 다른 방법) 호출의 흔적이 없습니다.

티켓을 여는 것이 좋습니다라고 생각하는 경우 phpunits issue tracker입니다. 이 같은 setUp에 정적 속성을 사용할 수있는 해결 방법에 대한

: 당신은 두 가지, 감사

+0

setUpBeforeClass()에서 실행할 것처럼, 종류, 작업을해야

protected function setUp() { static $db = null; if($db === null) { $db = whatevery_you_do_there(); } $this->db = $db; } 

. 첫째, 내가 뭔가를 놓치지 않았 음을 확인하기 위해 :). 둘째, 내가 필요한 것을 정확히 수행하는 매우 영리한 솔루션. –

+0

다음은 버그입니다. https://github.com/sebastianbergmann/phpunit-selenium/issues/69 –

관련 문제