В среде IDE NetBeans для PHP поддерживаются средства автоматического тестирования PHPUnit. Благодаря PHPUnit среда IDE NetBeans предоставляет охват кода для PHP, подобный охвату кода, предоставляемому средой IDE для Python и Ruby. Результат теста отображается в том же самом многофункциональном окне результатов, которое также используется при тестировании в JUnit, Ruby и Python среды IDE.
Среда IDE NetBeans также поддерживает переносимую платформу тестирования Selenium в комбинации с PHPUnit. Подключаемый модуль Selenium доступен из центра обновления. При установке этот подключаемый модуль добавляет сервер Selenium к зарегистрированным серверам среды IDE, а также добавляет параметры тестирования Selenium к меню PHP.
Установите PHPUnit с помощью PEAR согласно указаниям в документации по PHPUnit. Следует установить версию PHPUnit 3.3.0 или выше. Специальная настройка не требуется. После установки PHPUnit NetBeans сможет распознать это средство тестирования. Обратите внимание на то, что вместе с механизмом PHP должен быть установлен PEAR. Также следует учитывать, что согласно документации по PHPUnit это средство тестирования обычно устанавливается в локальный каталог PEAR. В документации указывается путь /usr/lib/php/PHPUnit, однако в XAMPP для Windows используется путь XAMPP_HOME\php\PEAR\PHPUnit.
Чтобы проверить, распознает ли среда IDE NetBeans установочный комплект PHPUnit, откройте "Сервис" > "Параметры" (в ОС Mac откройте "Параметры NetBeans") и просмотрите окно "PHP". Путь к сценарию PHPUnit должен отобразиться в поле "Сценарий PHPUnit". Если сценарий не найден, выполните переход к нему вручную.
Создание и выполнение тестов PHPUnit
Среда IDE NetBeans может создавать и выполнять тесты PHPUnit во всех классах PHP файла. Для обеспечения работы генератора тестов задайте файлу PHP имя, идентичное имени первого класса файла.
Создание и выполнение тестов PHPUnit для класса:
Создайте проект PHP с именем "Calculator". В этом проекте создайте файл с именем calculator.php. Введите или вставьте в этот файл класс Calculator из раздела "Skeleton Generator" документации PHPUnit.
<?php
class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
}
?>
Добавьте блок комментариев с аннотацией @assert, а также пример входных и выходных данных. Обратите внимание – в этот пример включено одно неверное утверждение.
В окне "Проекты" правой кнопкой мыши щелкните узел Calculator.php и выберите команду "Сервис" > "Создать тесты PHPUnit". Обратите внимание на то, что тесты для всех файлов в проекте можно создавать в контекстном меню для узла "Исходные файлы".
При первом создании тестов в диалоговом окне выводится вопрос о каталоге, в котором следует сохранить файлы тестов. В этом примере функция "Обзор" используется для создания папки tests.
В среде IDE в файле с именем CalculatorTest.php создается базовый класс, который отображается в окне "Проекты" и открывается в редакторе.
Обратите внимание на то, что тест создается для каждой аннотации @assert.
/**
* Создано из @assert (1, 1) == 2.
*/
public function testAdd4()
{
$this->assertEquals(
2,
$this->object->add(1, 1)
);
}
Можно выполнить тестирование отдельного файла или целого проекта. Для тестирования проекта щелкните правой кнопкой мыши родительский узел проекта и выберите команду "Тестировать" или нажмите сочетание клавиш ALT+F6. Для тестирования файла Calculator.php щелкните правой кнопкой мыши узел файла или нажмите сочетание клавиш CTRL+F6. В этом примере существует только один класс в одном файле, так что результаты являются идентичными. Среда IDE выполняет тесты и отображает результаты в окне "Результаты теста".
Более подробная текстовая версия результатов отображается в окне "Вывод".
Результаты теста и вывод среды IDE
Результаты тестов PHPUnit отображаются в двух окнах среды IDE – "Результаты теста" и "Вывод". Окно "Результаты теста" имеет графическую панель и краткую текстовую панель. Окно "Вывод" предоставляет более подробную текстовую версию выходных данных. В это разделе окна "Результаты теста" и "Вывод" рассматриваются более подробно.
В окне "Результаты теста" отображаются сведения о тестах со сбоями из следующих местоположений:
Сообщения на панели пользовательского интерфейса, связанные с записью дерева для теста со сбоем
Текст правой панели со ссылками на строки кода теста со сбоем
Текст всплывающей подсказки, отображающийся при наведении курсора на тест со сбоем в панели пользовательского интерфейса
На левой стороне окна "Результаты теста" расположены следующие кнопки:
Повторное выполнение теста ;
Переключение между отображением результатов для всех тестов или результатов только для тестов со сбоем ;
Переход между отображением следующего результата теста или предыдущего результата теста.
Окно "Вывод" отображает все выходные данные сценария PHPUnit. Использование этой функции целесообразно, если причину ошибки невозможно установить с помощью информации в окне "Результаты теста". Как и окно "Результаты теста", окно "Вывод" содержит ссылки на строку класса теста с ошибкой. На его левой стороне также расположены кнопки для повторного выполнения теста и открытия окна "Параметры PHP".
Охват кода
Среда IDE NetBeans для PHP предоставляет функцию охвата кода с поддержкой PHPUnit. (В среде IDE также представлена функция охвата кода для Ruby и Python). Функция охвата кода проверяет, все ли используемые методы охватываются тестами PHPUnit. В этом разделе представлен механизм охвата кода существующего класса Calculator.
Использование функции охвата кода:
Откройте Calculator.php и добавьте дубликат функции add с именем add2. При этом класс Calculator должен выглядеть примерно таким образом:
Щелкните узел проекта правой кнопкой мыши. В контекстном меню выберите команду "Охват кода" > "Сбор и отображения охвата кода". По умолчанию панель "Отобразить панель редактора" также выбрана.
Индикатор охвата кода отображается в нижней части редактора. Поскольку тестирование охвата кода еще не выполнялось, в индикаторе редактора отображается значение охвата, равное 0%. (Это значение также отображается при нажатии на кнопку "Очистить" для очистки результатов теста).
Выберите команду "Тестировать" для тестирования открытого файла или "Все тесты" для запуска всех тестов по проекту. Отобразится окно "Результаты теста". Кроме того, индикатор "Охват кода" сообщает процент задействованных в тестах операторов исполняемого кода. Задействованный код в окне редактора выделяется зеленым цветом, а незадействованный код – красным цветом.
На панели редактора щелкните элемент "Отчет...". Отобразится отчет "Охват кода", в котором будут показаны результаты всех тестов, выполненных для проекта. Кнопки в отчете позволяют очищать результаты, повторно выполнять тесты или отключать охват кода (нажмите кнопку "Готово").
Разработчик может добавить другой класс в проект, удалить и заново создать файлы теста, а также еще раз изучить отчет об охвате кода. Будет показан новый класс. В следующем отчете класс Calculator снова содержит функцию, не включенную в тесты.
Использование вариантов настройки для отдельных проектов
В среде IDE для проекта можно выбрать следующие собственные варианты настройки:
файл начальной загрузки;
файл настройки в формате XML;
набор тестов.
Для выбора варианта настройки для отдельного проекта щелкните правой кнопкой мыши узел проекта или узел "Файлы тестов", а затем выберите пункт меню "Свойства". В результате откроется диалоговое окно "Свойства". Выберите в нем категорию "PHPUnit". Откроется диалоговое окно, в котором можно выбрать собственный способ начальной загрузки, XML-файл настройки или файл набора тестов. При отсутствии знаний о структуре этих файлов можно создать их скелеты средствами среды IDE NetBeans.
Параметр начальной загрузки требуется для проектов, в которых используется собственный загрузчик классов, например, посредством реализации магической функции __autoload(). Параметр начальной загрузки используется также при необходимости включения файла, содержащего, например, глобальные константы, которые используются несколькими классами в проекте, в будущем.
XML-файл настройки позволяет определить параметры, используемые в вызове из командной строки. Полный комплект вводной информации содержится в Руководстве по PHPUnit. С помощью XML-файла настройки также можно определить настройки php.ini и глобальные переменные для тестов. Параметр начальной загрузки может быть указан и в XML-файле настройки.
Если задан собственный набор тестов, он запускается при каждом выборе пункта меню "Выполнить > Тестирование проекта". Это особенно удобно, если требуется запустить только подмножество всех тестов, либо если требуется использовать недавно реализованные функции PHPUnit, которые необходимо добавлять вручную, например, источники данных.
Следует отметить, что существует возможность создавать любое количество наборов тестов и запускать их по отдельности; для этого нужно щелкнуть файл в проводнике проектов и выбрать пункт меню "Выполнить".
Во избежание недоразумений при использовании собственного набора тестов выдается предупреждение. Это предупреждение выводится в окне "Результаты теста" и в окне вывода.
Запуск тестов на платформе Selenium
Selenium – это переносимая платформа тестирования программного обеспечения для веб-приложений. Тесты могут быть созданы в виде таблиц HTML или написаны с помощью различных популярных языков программирования. Тесты запускаются напрямую в большинстве современных обозревателей. Selenium может развертываться в системах Windows, Linux и Macintosh. Дополнительные сведения приведены на веб-сайте Selenium.
Среда IDE NetBeans имеет подключаемый модуль, включающий в себя сервер Selenium. Этот подключаемый модуль позволяет выполнять тесты Selenium в PHP, веб-приложениях или проектах Maven. Чтобы запустить тесты Selenium в PHP, следует установить пакет Testing Selenium в системе PHP.
Запуск тестов Selenium в PHP:
Откройте командную строку и запустите команду pear install Testing_Selenium-beta. PHP_HOME/php/PEAR должен быть добавлен к пути. Если команда выполнена успешно, то командная строка отобразит текст install ok: channel://pear.php.net/Testing_Selenium-0.4.3.
В среде IDE откройте меню "Сервис" > "Подключаемые модули" и установите модуль Selenium для PHP.
В окне "Проекты" правой кнопкой мыши щелкните узел проекта для проекта Calculator. Выберите команду "Создать" > "Прочие". Откроется мастер "Создать файл". Выберите параметр "Selenium" и нажмите кнопку "Далее".
При первом создании теста Selenium будет открыто диалоговое окно, позволяющее установить каталог для файлов теста Selenium. Этот каталог должен отличаться от каталога файлов теста PHPUnit. В противном случае тесты Selenium будут запускаться при каждом запуске тестов модулей. Запуск функциональных тестов вида Selenium обычно занимает больше времени, чем запуск тестов модулей, поэтому их совместный запуск с тестами модулей скорее всего нежелателен.
Примите параметры по умолчанию на странице "Имя и местоположение" и нажмите кнопку "Готово". Новый файл теста Selenium откроется в редакторе и появится в окне "Проекты".
Элемент "Выполнить тесты Selenium" добавлен в контекстное меню проекта. Щелкните этот элемент, и результаты теста Selenium отобразятся в окне "Результаты теста", как и для тестов PHPUnit.
Дополнительные примеры
Ниже приведены дополнительные ресурсы для изучения:
Добавьте второй класс в файл Calculator.php, например, класс Calculator2, который умножает $a и $b. Удалите тесты и повторно создайте их.
Оставить комментарии и предложения, обратиться за поддержкой и получить сведения о последних достижениях в области разработки для PHP с помощью среды IDE NetBeans можно в списке рассылки . Этот список также находится в форумах среды IDE NetBeans.
Дополнительные материалы
Дополнительные сведения о тестировании PHP в среде IDE NetBeans приведены в следующих ресурсах: