Всем привет.
Такая проблема. Имеется машина под Windows 7 64bit, установлен последний PHP 5.5.3, к нему — PEAR и из-под него установлен phpUnit версии 3.7.24. Создал в Netbeans 7.3.1 пустой проект, в нем — файл-пример
Calculator.php вида:
==
<?php
class Calculator {
/**
* assert (0,0) == 0
* assert (0,1) == 1
* assert (1,0) == 1
* assert (1,1) == 2
* assert (1, 2) == 3
*
*/
public function sum($a, $b) {
return $a + $b;
}
}
==
В настройках Netbeans'а прописал пути к phpUnit.bat и phpunit-skelgen.bat. Для проекта указал каталог, где лежат тесты. Сначала выполняю генерацию тестов для указанного файла. В каталоге тестов появляется файл CalculatorTest.php. Сначала обратил внимание, что в этом файле отсутствует строка подключения класса самого Calculator.php, без которой запуск тестов выдывал ошибку о том, что не найден класс Calculator. В общем, подключил руками через require_once (хотя, в общем-то, странно — это постоянно нужно руками прописывать путь к тестируемым классам ?...) Ну да ладно. Тесты, худо-бедно, заработали.
Далее стало интересно посмотреть, как работает расчет покрытия кода. Устанавливаю в меню проекта 2 галки: «Охват кода» -> «Сбор и отображение охвата кода» + «Показать панель редактора». Появляется строка с надписью «Охват кода: 0.00%». Запускаю те же тесты для Calculator.php, но содержимое этой строки так и не меняется. Постоянно выводит нули. В окне «Вывод» никаких необычных сообщений нет.
То есть, phpUnit нормально стартует и выполняет экспорт в XML. XDebug установлен и прописан в php.ini.
Когда нажимаю на кнопку «Отчет» с целью посмотреть результаты расчета кода покрытия, то вижу одну строку: «Нет данных — был ли запущен код?».
Может, кто-то сталкивался с подобным? Как можно решить проблему?
Заранее благодарю за помощь.
ps. Если же просто из командной строки выполнить 2 команды руками:
>phpunit-skelgen --test calculator
>phpunit --coverage-clover report.xml calculatortest
, то формируется нормальный отчет report.xml с ненулевыми данными внутри.