2013-07-15 67 views
0

我使用sausage框架通過Sauce Labs運行基於phpunit的並行化的Selenium網絡驅動程序測試。一切都運行良好,直到我想通過markTestSkipped()跳過測試標記。markTestSkipped()不通過Sauce Labs進行基於香腸的Selenium測試

在測試方法本身設置markTestSkipped()::我已通過兩種方法嘗試這樣

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():

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時,不支持在PHPunit中記錄markTestSkipped()和markTestIncomplete()結果。更準確地說,PHPunit不會記錄那些調用markTestSkipped()或markTestIncomplete()(如果使用arguments ['junitLogfile'] set調用的測試),並且paratest使用junitLogfile調用PHPunit。

欲瞭解更多信息,請參見:https://github.com/brianium/paratest/issues/60

我想我可以在任PHPUnit的或paratest ...

謬以千里
相關問題