2014-11-03 38 views
0

我有一個Zend-Framework 2項目,我有問題來組織我的單元測試。我的單元測試位於每個模塊的一個「測試」文件夾中。如果我使用phpunit在模塊的測試文件夾中從命令行運行測試,測試將成功運行。如何處理Zend Framework 2中的單元測試?

實施例:

C:\項目\模塊\ AccessControl的\測試> PHPUnit的

PHPUnit 3.7.14 by Sebastian Bergmann. 
Configuration read from c:\project\module\AccessControl\test\phpunit.xml 
........Time: 0 seconds, Memory: 8.25Mb 
OK (8 tests, 10 assertions) 

問題:在這裏只有一個模塊將testet。但我想從文件夾c:\ project \運行一個測試套件來測試這個洞項目。 那裏我已經把一個bootstrap.php和一個phpunit.xml。

C:

從命令行我運行\項目\測試> PHPUnit的--debug --configuration phpunit.xml

PHPUnit 3.7.14 by Sebastian Bergmann. 
Configuration read from C:\project\tests\phpunit.xml 
Starting test 'AccessControlTest\Model\AuthenticationTest::testInitDefault'. 
PHP Fatal error: Class 'AccessControlTest\Bootstrap' not found in C:\project\module\AccessControl\test\AccessControlTest\Model\AuthenticationTest.php on line 22 
PHP Stack trace: 
PHP 1. {main}() C:\Program Files (x86)\PHP\phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() C:\Program Files (x86)\PHP\phpunit:46 
PHP 3. PHPUnit_TextUI_Command->run() C:\Program Files (x86)\PHP\PEAR\PHPUnit\TextUI\Command.php:129 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() C:\Program Files (x86)\PHP\PEAR\PHPUnit\TextUI\Command.php:176 
PHP 5. PHPUnit_Framework_TestSuite->run() C:\Program Files (x86)\PHP\PEAR\PHPUnit\TextUI\TestRunner.php:346 
PHP 6. PHPUnit_Framework_TestSuite->run() C:\Program Files (x86)\PHP\PEAR\PHPUnit\Framework\TestSuite.php:705 
PHP 7. PHPUnit_Framework_TestSuite->runTest() C:\Program Files (x86)\PHP\PEAR\PHPUnit\Framework\TestSuite.php:745 
PHP 8. PHPUnit_Framework_TestCase->run() C:\Program Files (x86)\PHP\PEAR\PHPUnit\Framework\TestSuite.php:775 
PHP 9. PHPUnit_Framework_TestResult->run() C:\Program Files (x86)\PHP\PEAR\PHPUnit\Framework\TestCase.php:769 
PHP 10. PHPUnit_Framework_TestCase->runBare() C:\Program Files (x86)\PHP\PEAR\PHPUnit\Framework\TestResult.php:648 
PHP 11. AccessControlTest\Model\AuthenticationTest->setUp() C:\Program Files (x86)\PHP\PEAR\PHPUnit\Framework\TestCase.php:821 

文件phpunit.xml看起來是這樣的:

<phpunit bootstrap="./Bootstrap.php" colors="true" verbose="true"> 
<testsuite name="SgtrCatalogTestsuite"> 
    <directory>../module/AccessControl</directory> 
</testsuite> 
</phpunit> 

它看起來像一些模塊路徑不正確。有人可以幫助並告訴我如何設置?

編輯 Ty for your replys !!!

在此期間,我發現這個: How to consolidate ZF2 unit/application module tests into a single call?

似乎無法逃避所有根層次Rootlevel模塊測試。我現在嘗試使用這個,讓你知道,如果它的工作原理:https://github.com/prolic/HumusPHPUnitModule

+0

你有你的自動加載composer.json? – mpacheco 2014-11-03 14:37:15

+0

你的Bootstrap.php是什麼樣的? – Schleis 2014-11-03 14:55:46

+0

ty,自動裝載機在那裏...我編輯的問題,因爲我發現了一個可能的重複 – 2014-11-03 15:07:18

回答

0

嘗試添加該部分在composer.json

"autoload": { 
     "psr-0": { 
      "AccessControlTest\\": "tests/", 
      "AccessControl\\": "src/module/AccessControl/src/" 
     } 
    } 

然後運行

$ php composer.phar dump-autoload 
+1

我們嘗試這個,但它不爲我們工作。我們爲這個問題找到了解決方案。我做了一個編輯,謝謝 – 2014-11-06 13:37:45

相關問題