2016-10-14 50 views
8
了「的TestCase」類

要使用項目的PHPUnit的運行我的測試中,我做到以下幾點:php vendor/bin/phpunit tests/SomeClassTest.php的正常工作給予以下類聲明:的PHPUnit無法找到

class SomeClassTest extends PHPUnit_Framework_TestCase { 
    public function test_someMethod() {} 
} 

但是當我這樣做失敗:

use PHPUnit\Framework\TestCase; 

class SomeClassTest extends TestCase { 
    public function test_someMethod() {} 
} 

我得到PHP Fatal error: Class 'PHPUnit\Framework\TestCase' not found ...因爲PHPUnit的5.4

+0

你正在使用什麼版本的PHPUnit? – martin

+0

@Martin PHPUnit 4.8.24 – Flawyte

回答

6

TestCase存在。你可以看到它在github上,如果你設置5.3 tag(尋找ForwardCompatibility文件夾),或者你可以在2. Writing Tests for PHPUnit部分,在那裏它說了5.35.4比較DOC:

「ClassTest繼承自PHPUnit_Framework_TestCase(大部分時間)。 「爲PHPUnit的5.3

「ClassTest繼承的PHPUnit \框架\測試用例(大部分時間)」。 for PHPUnit 5.4

3

在我的庫中,我仍然標記爲可用於PHP 5.4,我必須將其添加到我的頂級測試用例類中,以便橋接非名稱空間/名稱空間差異,具體取決於Composer根據運行時PHP版本安裝哪個版本的PHPUnit。

/* 
* Allow for PHPUnit 4.* while XML_Util is still usable on PHP 5.4 
*/ 
if (!class_exists('PHPUnit_Framework_TestCase')) { 
    class PHPUnit_Framework_TestCase extends \PHPUnit\Framework\TestCase {} 
} 

abstract class AbstractUnitTests extends \PHPUnit_Framework_TestCase 
{ 

這適用於PHP 5.4(PHPUnit 4.8.34),直到PHP 7.1(PHPUnit 6.0.2)。