У меня есть 2 каталога: проект1 и проект2. Когда я запускаю PHPUnit в project1 / tests, он работает нормально. Когда я запускаю его в project2 / tests, он работает нормально, за исключением того, что не создает никаких отчетов о покрытии кода. Конфигурационные файлы phpunit.xml практически идентичны. Существуют некоторые различия в бутстрапах, которые вызывает каждый, но я не думаю, что это материал. (Я проверил пути, и они в порядке).
Есть идеи? Как я могу диагностировать эту проблему?
Вот phpunit.xml из проекта 2 / tests:
<phpunit bootstrap="./TestBootstrap.php">
<testsuite name="OpenCompany">
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<directory suffix=".php">..\library\</directory>
<directory suffix=".php">..\application\</directory>
<exclude>
<directory suffix=".phtml">..\application\</directory>
</exclude>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./output/report" charset="UTF-8" yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-clover" target="./output/coverage.xml"/>
<log type="json" target="./output/logfile.json"/>
<log type="tap" target="./output/logfile.tap"/>
<log type="junit" target="./output/logfile.xml" logIncompleteSkipped="false"/>
<log type="testdox-html" target="./output/testdox.html"/>
<log type="testdox-text" target="./output/testdox.txt"/>
</logging>
А вот и TestBootstrap.php:
<?php
// Adapted from tutorial by Matthew Weier O'Phinney
// Tutorial is dated 11/09/2008
// Set location
date_default_timezone_set('Australia/Sydney');
// Set Error Reporting to All, Strict
error_reporting(E_ALL | E_STRICT);
// Sets include paths relative to location of TestBootstrap.php
$root = realpath(dirname(__FILE__).'/../'); // resolves to project directory
$library = $root.'/library';
$tests = $root.'/tests';
$models = $root.'/application/models';
$dbtables = $root.'/application/models/DbTable';
$controllers = $root.'/application/controllers';
$path = array($models, $library, $dbtables, $tests, get_include_path());
set_include_path(implode(PATH_SEPARATOR, $path));
// Set Application Constants
if (!defined('APPLICATION_PATH')) {define('APPLICATION_PATH', $root.'/application');}
if (!defined('APPLICATION_ENV')) {define('APPLICATION_ENV', 'testing');}
// Get Autoloading happening
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
// Setup a default DB connection
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'openco_v1_0'
)
);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
// Store some stuff in the registry
// Zend_Registry::set('testRoot', $root);
// Zend_Registry::set('testBootstrap', $root.'/application/bootstrap.php');
// Unset global variables that are no longer required
unset($root, $library, $models, $dbtables, $controllers, $tests, $path);
Любая помощь приветствуется!