2010-06-28 6 views
0

Я пытаюсь использовать некоторые предположительно хорошие функции PHPUnit, но я не могу создать отчет о покрытии кода freakin. То, что я получаю:Генерация отчета о покрытии кода PHPUnit не работает

[email protected] ~/projects/current/tests $ scripts/phpunit --configuration $PROJECTS/current/tests/conf/inc/tests.xml 
[...] 
Generating code coverage report, this may take a moment. 
[...] 
Fatal error: require_once(): Failed opening required 'lib/DataSource.php' (include_path=':::') in path/to/lib/WS/DataParser.php on line 10 

Однако в этом самом классе, включают в себя определенный путь определен, и require_once работает как шарм, когда приложение запускается.

Может быть, PHPUnit не может решить включить пути?

Заранее благодарим и долго вживую stackoverflöw!

Rolf 
+0

Когда вы запускаете свое приложение, это через браузер или CLI? Если в браузере вы указываете пути включения в файл .htaccess или, возможно, файл PHP.INI, который не используется PHPUnit? – Narcissus

+0

привет, я обычно запускаю приложение через браузер, за исключением модульных тестов ... – Rolf

+0

Кстати, запуск приложения некорректен? – Rolf

ответ

0

Вы меняли свой include_path в любом из ваших тестов/кода? Потому что это выглядит очень странно (:: :)

+0

ну, у меня есть функция __autoload только для модульных тестов, которые меняют include_path, но класс, который не может быть проанализирован, также определяет включение путь, поэтому я не понимаю ... – Rolf

+0

Ваш include_path (include_path = ':::') не содержит никакой информации о текущем пути, только разделители путей. Это означает, что код может отображаться только в текущем каталоге для включений. – CaptainZee

1

Если вы используете последнюю версию PHPUNIT (3.5+), это может быть потому, что Sebastion начал использовать сам автозагрузчик в программе.

Вы должны добавить строку

spl_autoload_register('__autoload'); 

после __autoload() функции получает создано/в комплекте/требуется

так, например, файл, который имеет мой автозагрузчик называется функцией. в моем бутстрапе я делаю следующее:

require_once(ROOT_PATH.'/lib/utils/functions.php'); 
spl_autoload_register('__autoload');