я использую PHPUnit-паучок наряду с PHPUnit для запуска браузерных / функциональных тестов на PhantomJS, установленных через jonnyw / PHP-phantomjs, который в свою очередь устанавливает phantomjs
двоичный в <project>/bin
, Поскольку эта папка не находится в системном пути, мне нужно запустить тесты следующим образом:
PATH=$PATH:`pwd`/bin ./phpunit test/browser/tests
Это работает нормально, но я ожидаю, что мне понадобится сжать ее в команду raw, когда я настрою ее на размещенном CI без префикса среды:
./phpunit test/browser/tests
Я пробовал --bootstrap
Команда запустить system()
команда для сброса системного пути, но безрезультатно, и я не вижу ничего в руководстве, которое описывает, как сделать это через phpunit.xml
, К сожалению, Spiderling жестко связывает команду Phantom, и ожидается, что она будет видна в системном пути.
Я также пытался сделать это setUp()
Тестовый метод, но это слишком поздно — Spiderling уже попытался и не смог запустить PhantomJS на случайном порту.
(Команда ./phpunit
это просто символическая ссылка на vendor/phpunit/phpunit/phpunit
, который является PHPUnit установленным через Composer.)
В дополнение к этому вопросу выясняется, что:
phantomjs
в любом случае в стандартном путиТаким образом, хотя оказывается, что мне это не нужно, кажется, есть два способа достичь этого. Поскольку мой подход требует выполнения обратных кавычек, мне интересно, env
подход может не сработать. Однако, для полноты, вот оба:
env
подход является записью в .файл travis.yml.Вы также можете попробовать before_script
ключ со значением таким образом:
before_script:
- export PATH=`pwd`/bin:$PATH
Поскольку рабочий каталог должен быть установлен в корне проекта, pwd
плюс подкаталог должен добавить новый путь к системному пути.
Других решений пока нет …