我使用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沒有跟蹤我的跳過測試,當他們以這種方式執行?