Использую Eclipse, PHPUnit находится в "C:/php/PEAR/PHPUnit".
Создал в IDE проект, затем папку lib. В папку lib разместил путь до директории с PHPUnit ("Include Path" -> "Configure Include Path..." -> вкладка "Libraries" -> кнопка "Add External Source Folder...").
Затем в проекте создал php-файл следующего содержания:
<?php
class newfile extends PHPUnit_Framework_TestCase {
function setUp() { $this->setBrowser("*firefox"); $this->setBrowserUrl("http://google.com/"); }
function testMyTestCase() { $this->open("/"); $this->type("q", "selenium"); $this->click("btnG"); sleep("5"); $this->assertTrue($this->isTextPresent("Selenium")); }
}
Ошибок нет, классы от PHPUnit видятся на ура. Запускаю файл на исполнение, в консоль выводятся следующее:
PHPUnit 3.6.11 by Sebastian Bergmann. Fatal error: Call to undefined method newfile::setBrowser() in C:\Works\Eclipce\site\tests\newfile.php on line 9
Т.е. я так понимаю, что у меня не видны классы от Selenium, хотя они подключены к проекту. Также пробовал делать require_once 'C:/php/PEAR/PHPUnit/Extensions/Selenium2TestCase.php', все равно не помогает.
В PHPUnit очень старый драйвер Селениума. Вы уверены, что хотите его использовать? Крайне советую не юзать всякие навороты PHPUnit, там сидит призрак 90ых и они крайне неюзабельны. В том числе модуль работы с БД.
Вам нужно глянуть в сторону Mink, для интеграции с Селениумом.
Но если честно, то неужели вы думаете, что писать приемочные тесты на фреймворке дл юнит-тестирования это хорошая идея? Попробуйте лучше Codeception
Там никаких проблем при подключении Селениума нет, просто указываете модуль селениума и запускаете тест.
Мне, как вы говорите, навороты и не нужны, но и разбираться с Codeception или Mink не хочется. У меня есть тесты, написанные через Selenium IDE, я просто хочу взять их (предварительно переведя в формат PHPUnit) и манипулировать ими уже через PHPUnit. PHP выбрал, так как более с ним знаком, чем с Java, да и часть нужных мне тестов лучшего всего писать только на PHP.
Так что помогите, лучше, заставить PHPUnit видеть классы от Selenium. Может просто еще ко-где надо что-то дописать/подключить?
Нашел, что нужно наследоваться не от PHPUnit_Framework_TestCase, а от PHPUnit_Framework_SeleniumTestCase, но теперь при запуске теста пишется, что:
Fatal error: Class 'PHPUnit_Framework_SeleniumTestCase' not found in C:\Works\Eclipce\site\tests\newfile.php on line 7