在PHPUnit的3.6.4,當我運行基於PHPUnit_Extensions_SeleniumTestCase的測試,我用的PHPUnit和硒 - 更新到3.6.10版本之後似乎markTestSkipped的markTestIncomplete和調用導致有錯誤的測試
$this->markTestSkipped();
或
$this->markTestIncomplete();
我有測試跳過(S)或標記爲未完成(I)。
但是在將PHPUnit更新到3.6.10 - 最新的版本之後 - 這些函數似乎通過產生錯誤而不是跳過它而失敗了測試。
更多的例子,藉此測試:
class ExampleTest extends PHPUnit_Extensions_SeleniumTestCase
{
public function testMyCase()
{
$this->markTestIncomplete();
}
}
它仍然會運行測試,並給你這樣的輸出,如果你沒有硒服務器上運行:
PHPUnit 3.6.10 by Sebastian Bergmann.
E
Time: 0 seconds, Memory: 6.25Mb
There was 1 error:
1) ExampleTest::testMyCase
RuntimeException:
/usr/bin/phpunit:46
FAILURES!
Tests: 1, Assertions: 0, Errors: 1
如果你這樣做有Selenium服務器運行你的結果會稍微不同,但你仍然會有一個錯誤。這僅適用於Selenium測試,擴展PHPUnit_Framework_TestCase的測試似乎沒有問題。要確認,更改您從PHPUnit_Framework_TestCase的擴展它的類:
class ExampleTest extends PHPUnit_Framework_TestCase
{
public function testMyCase()
{
$this->markTestIncomplete();
}
}
你會產生這樣的結果:
PHPUnit 3.6.10 by Sebastian Bergmann.
I
Time: 0 seconds, Memory: 5.25Mb
OK, but incomplete or skipped tests!
Tests: 1, Assertions: 0, Incomplete: 1.
所以我的問題是:這是PHPUnit的3.6.10中的錯誤?這是一個很酷的功能,我不知道,我做錯了什麼?
此版本的PHPUnit可能存在一些錯誤。我也遇到了一些問題:我收到一些錯誤,聲稱...'方法沒有定義,但在使用PHPUnit 3.5進行測試時,一切都正常。通過降級,我回到了舊版本的PHPUnit(http://www.niden.net/2012/01/downgrading-phpunit-from-36-to-35.html)。 – faramka 2012-02-28 07:39:10