2013-07-15 3 views
0

sausage 프레임 워크를 사용하여 Sauce Labs를 통해 병렬화 된 phpunit 기반 Selenium 웹 드라이버 테스트를 실행합니다. markTestSkipped()를 통해 테스트를 건너 뛸 때까지는 모든 것이 잘 작동합니다.Sauce Labs를 통한 소시지 기반 Selenium 테스트에서 markTestSkipped()가 작동하지 않음

시험 방법 자체 markTestSkipped()를 설정 : I는 두 가지 방법을 통해이 시도 이때

class MyTest 
{ 
    public function setUp() 
    { 
     //Some set up 
     parent::setUp(); 
    } 
    public function testMyTest() 
    { 
     $this->markTestSkipped('Skipping test'); 
    } 
} 

테스트는 생략하지만, 도착에만 불필요한 많은 행하는 설정을 수행 한 후 건너 뛴 테스트 작업. phpunit은 테스트를 건너 뛴 것처럼 추적하지 않습니다. 실제로는 테스트를 전혀 추적하지 않습니다.

Running phpunit in 4 processes with <PATH_TO>/vendor/bin/phpunit 

Time: <num> seconds, Memory: <mem used> 

OK (0 tests, 0 assertions) 

다른 방법 설정 방법 markTestSkipped()를 설정하는 것이다 : I는 다음과 같은 출력 얻을 이때

class MyTest 
{ 
    public function setUp() 
    { 
     if (!shouldRunTest()) { 
      $this->markTestSkipped('Skipping test'); 
     } else { 
      parent::setUp(); 
     } 
    } 
    protected function shouldRunTest() 
    { 
     $shouldrun = //some checks to see if test should be run 
     return $shouldrun; 
    } 
    public function testMyTest() 
    { 
     //run the test 
    } 
} 

를 설치가 생략되어 있지만, 테스트 아직 추적하지 못하는 테스트는 건너 뜁니다. phpunit은 여전히 ​​위의 결과를 반환합니다. phpunit이 이러한 방식으로 실행될 때 건너 뛴 테스트를 추적하지 않는 이유는 무엇입니까?

답변

0

paratest를 사용할 때 markTestSkipped() 및 markTestIncomplete() 결과가 PHPunit에 기록되는 것을 지원하지 않습니다. 좀 더 정확히 말하자면, PHPunit는 인자 [ 'junitLogfile']이 설정되어있는 상태에서 markTestSkipped() 또는 markTestIncomplete()를 호출하는 테스트를 로그하지 않으며, paratest는 junitLogfile을 사용하여 PHPunit을 호출합니다.

대한 추가 정보를 원하시면 다음을 참조하십시오 https://github.com/brianium/paratest/issues/60

을 내가 phpunit을 또는 paratest ...

중 하나에서 멀리 해킹 수 있다고 생각