2013-12-23 24 views
1

爲什麼PHPUnit的號召班上CTestCase工作:的Yii:設計按合同PHPUnit的

require_once('PHPUnit/Autoload.php'); 
.... 

PHPUnit_Framework_Assert::assertNotNull($object); 

但如果我把它在成分目錄中的文件相同的方式,它顯示我:

require_once(PHPUnit/Autoload.php): failed to open stream: No such file or directory 

即使我添加與CTestCase相同的導入,它也不起作用。

require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11 
require_once('PHPUnit/Autoload.php'); 
spl_autoload_unregister('phpunit_autoload'); 
Yii::registerAutoloader('phpunit_autoload'); 

這表明我:

require_once(PHPUnit/Util/Filesystem.php): failed to open stream: No such file or directory 

我使用的命名空間,並希望使用design-by-contract

我真的希望有人能幫助我。

回答

0

感謝這post我找到了我的問題的解決方案。 以下是在Yii控制器和Helper類中啓用PHPUnit的Design-By-Contract斷言的代碼。

spl_autoload_unregister(array('YiiBase','autoload')); 
require_once('PHPUnit/Autoload.php'); 
spl_autoload_register(array('YiiBase','autoload')); 
0

如果您暢遊內部的框架/測試/ CTestCase.php,那麼你會發現這個樣子,

require_once('PHPUnit/Runner/Version.php'); 
require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11 

spl_autoload_unregister(array('YiiBase','autoload')); 
require_once('PHPUnit/Autoload.php'); 
spl_autoload_register(array('YiiBase','autoload')); // put yii's autoloader at the end 

if (in_array('phpunit_autoload', spl_autoload_functions())) { // PHPUnit >= 3.7 'phpunit_autoload' was obsoleted 
    spl_autoload_unregister('phpunit_autoload'); 
    Yii::registerAutoloader('phpunit_autoload'); 
} 

我認爲,這將幫助你瞭解你的問題。

+0

嗨,我添加CTestCase的文件導入到我的問題。但我無法解決我的問題。有沒有可能解決它? – EvilKarter