У меня есть проект Zend Framework, и я хочу использовать модульное тестирование для его проверки.
 В папке тестов у меня есть phpunit.xml как phpunit.xml ниже; 
 <phpunit bootstrap="./application/bootstrap.php" colors="true"> <testsuite name="Application Test Suite"> <directory>./</directory> </testsuite> <filter> <whitelist> <directory suffix=".php">../application/</directory> <exclude> <directory suffix=".phtml">../application/</directory> <file>../application/Bootstrap.php</file> <file>../application/controllers/ErrorController.php</file> </exclude> </whitelist> </filter> <logging> <log type="coverage-html" target="./log/reprot" charset="UTP-8" yui="true" highlight = "true" lowUpoerBound="50" highLowerBound="80"/> <log type="textdox" target="./log/testdox.html" /> </logging> 
  И у меня есть bootstrap.php в папке / tests / application следующим образом: 
  <?php error_reporting(E_ALL | E_STRICT); // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); require_once 'Zend/Loader/Autoloader.php'; require_once 'controllers/ControllerTestCase.php'; Zend_Loader_Autoloader::getInstance(); 
когда я иду в командную строку, запустите следующую команду
 phpunit --configuration phpunit.xml 
он выдает исключение:
  PHP Неустранимая ошибка: исключить исключение «PHPUnit_Framework_Exception» с сообщением
 «Ни« Application Test Suite.php », ни« Application Test Suite.php »не могли быть
 открыт.  в D: \ PHP \ php5 \ PEAR \ PHPUnit \ Util \ Skeleton \ Test.php: 102
 Трассировки стека:
 # 0 D: \ PHP \ php5 \ PEAR \ PHPUnit \ TextUI \ Command.php (157): PHPUnit_Util_Skeleton_Test-
 > __ construct ('Application Tes ...', '')
 # 1 D: \ PHP \ php5 \ PEAR \ PHPUnit \ TextUI \ Command.php (129): PHPUnit_TextUI_Command-> run
 (Array, true)
 # 2 D: \ PHP \ php5 \ phpunit (53): PHPUnit_TextUI_Command :: main ()
 # 3 {main}
   брошен в D: \ PHP \ php5 \ PEAR \ PHPUnit \ Util \ Skeleton \ Test.php в строке 102 
Как я могу это исправить?
  Вы заметите, что он выбрал исключение, потому что он ищет файл с именем, аналогичным name вы предоставили для своего тестового набора.  Вам нужно написать набор тестов, а затем указать название этого набора тестов в свой конфиг: http://www.phpunit.de/manual/3.2/en/organizing-test-suites.html 
У меня была та же проблема с той же настройкой. Из того, что я понимаю, более свежие версии PHPUnit требуют, чтобы хотя бы один фактический тест работал правильно. После создания простого теста это сработало.
MyProject / тесты / приложения / DemoTest.php
 <?php class DemoTest extends ControllerTestCase { public function setUp() { parent::setUp(); } public function testCanDoUnitTest() { $this->assertTrue(true); } } 
  Я заметил, что вы не используете <testsuites> который содержит несколько вхождений <testsuite> . 
Вот мой phpunit.xml, который отлично подходит для проектов Zend Framework:
<testsuites> <testsuite name="UnitTests"> <directory>./library</directory> </testsuite> <testsuite name="ApplicationTests"> <directory>./application</directory> </testsuite> </testsuites>во<testsuites> <testsuite name="UnitTests"> <directory>./library</directory> </testsuite> <testsuite name="ApplicationTests"> <directory>./application</directory> </testsuite> </testsuites>