Как установить глобальное перед запуском скелет-теста PHPUnit - PullRequest
3 голосов
/ 02 октября 2009

Мы устанавливаем глобал в нашем файле prepend, который используется для формирования пути для наших вызовов require_once. Например:

require_once($GLOBALS['root'].'/library/particleboard/JsonUtil.php');

Проблема в том, что при запуске сборщика тестов PHPUnit файл prepend не запускается, поэтому глобальное значение никогда не устанавливается. Когда я бегу

cd /company/trunk/queue/process; phpunit --skeleton-test QueueProcessView

PHPUnit пытается разрешить require_once в QueueProcessView, но, поскольку $ GLOBALS ['root'] никогда не устанавливается, я получаю фатальную ошибку при включении требуемого файла.

Например, для PHPUnit, что должно быть

require_once(/code/trunk/library/particleboard/JsonUtil.php)

разрешается как

require_once(/library/particleboard/JsonUtil.php)

Обратите внимание на отсутствующий корень.

Кто-нибудь знает, есть ли в коде скелетного теста способ вызова файла PHP до его запуска? В этом я мог бы установить свой GLOBAL ['root'] в этом файле.

Буду признателен за любые другие творческие решения.

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Таким же образом, как вы можете загрузить обычный набор тестов, вы также можете сделать то же самое для поколения скелета

phpunit --bootstrap prepend.php --skeleton-test QueueProcessView

Я проверил это с тремя файлами:

test.php:

<?php   
require_once($GLOBALS['root'].'/confirmedToRun.php');
class test
{
   function doStuff()
   {
   }
}

prepend.php:

<?php   
$root = "/tmp/";

confirmedToRun.php:

<?php   
echo __FILE__;

Запуск phpunit --bootstrap prepend.php --skeleton-test test для генерации каркасного класса, testTest.php - также запускает файл confirmedToRun.php.

phpunit --bootstrap prepend.php --skeleton-test test
PHPUnit 3.4.2 by Sebastian Bergmann.

/tmp/confirmedToRun.php
Wrote skeleton for "testTest" to "/home/me/tmp/testTest.php".
0 голосов
/ 02 октября 2009

Хорошо, я понял это. Я просто отредактировал файл PHPUnit / Util / Test.php, чтобы включить мою ссылку. Не самое элегантное решение, но поскольку остальная часть инфраструктуры позволяет вам вызывать файл начальной загрузки, я могу жить с этой взломанной утилитой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...