2012-02-25 97 views
1

在CMDLINE一切正常:PHPUnit的3.6.10 + 7.1的NetBeans:好的測試拋出異常

d:\xampp\htdocs\PhpProject1\Tests>phpunit TestStub.php 
PHPUnit 3.6.10 by Sebastian Bergmann. 

. 

Time: 0 seconds, Memory: 2.75Mb 

OK (1 test, 1 assertion) 

在NetBeans7.1叫:

Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class "" in "D:\Program Files (x86)\NetBeans 7.1\php\phpunit\NetBeansSuite.php".' in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php:123 
Stack trace: 
0 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('', 'D:\Program File...') 
1 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(130): PHPUnit_TextUI_Command->run(Array, true) 
2 D:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main() 
3 {main} 
thrown in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php on line 123 

我覺得這是一個NetBeans的問題。 如果我運行:

d:\Program Files (x86)\NetBeans 7.1\php\phpunit>phpunit NetBeansSuite.php run=d:\xampp\htdocs\PhpProject1\Tests\TestStub.php 
PHPUnit 3.6.10 by Sebastian Bergmann. 

. 

Time: 0 seconds, Memory: 2.75Mb 

OK (1 test, 1 assertion) 

沒關係。但是,如果我給測試目錄,它會失敗。

d:\Program Files (x86)\NetBeans 7.1\php\phpunit>phpunit NetBeansSuite.php run=d:\xampp\htdocs\PhpProject1\Tests\ 

Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class "" in "D:\Program Files (x86)\NetBeans 7.1\php\phpunit\NetBea 
nsSuite.php".' in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php:123 
Stack trace: 
0 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('', 'D:\Program File...') 
1 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(130): PHPUnit_TextUI_Command->run(Array, true) 
2 D:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main() 
3 {main} 
thrown in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php on line 123 

任何臨時解決方案?

+0

「d:\ Program Files(x86)\ NetBeans 7.1 \ php \ phpunit \ NetBeansSuite.php」中的Grrr .. line 118顯示瞭解決方案 'return self :: rglob(「* [Tt] est.php」 ,$ run.DIRECTORY_SEPARATOR);' 測試文件名必須結束... Test.php – shuttle 2012-02-25 11:35:53

+1

您是否已將NetBeans指向您的'bootstrap.php'和/或'phpunit.xml'文件? – 2012-02-25 20:25:35

+0

我個人發現,NetBeans中的PHPUnit支持充其量是有問題的,並且拋棄了它,而是傾向於在命令行上運行單元測試。 – Hades 2012-02-25 12:06:11

回答

3

當針對單個文件運行PHPUnit時,它將始終打開文件並在其中查找測試用例。

當它運行在一個目錄(netbeans做什麼)時,它只會查看以*Test.php結尾的文件(除非在phpunit.xml中指定了其他內容)。

如果它不能找到任何測試,它會嘗試尋找到$TestSuiteName文件夾和文件{$TestSuiteName}.php因此錯誤消息:

Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class ""

,因爲它正在尋找一個「未命名」測試套件中netbeans phpunit線束。錯誤信息真的不幫你:)

一般的建議是創建一個phpunit.xml並指向它的Netbeans。

在更個人的觀點上:從主要IDE中的phpunit支持Netbeans做了很多事情,對很多人來說工作得很好,所以不要讓這個不愉快的事情阻止你從IDE使用它if那就是你想要的。