Расположение каталога для тестов PHPUnit?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

13
задан cweiske 13 January 2012 в 08:42
поделиться

4 ответа

Я думаю, что это - хорошая идея разделить Ваши файлы. Я обычно использую структуру папок как это:

/myapp/src/        <- my classes
/myapp/tests/       <- my tests for the classes
/myapp/public/      <- document root

В Вашем случае, поскольку включая класс в Вашем тестовом файле, почему не только передают целый путь к включать методу?

include('/path/to/myapp/src/MyClass.php');

или

include('../src/MyClass.php');
9
ответ дан 2 December 2019 в 00:04
поделиться

Я поместил свои тестовые сценарии затем источник в файле с тем же именем, но .phpt расширением. Сценарий развертывания просто отфильтровывает *.phpt, когда они продвигают к производству.

1
ответ дан 2 December 2019 в 00:04
поделиться

Ответ Brian Phillips не вполне заходит достаточно далеко, по моему опыту. Вы не знаете то, что - текущий каталог, когда Ваши тесты запущены PHPUnit. Таким образом, необходимо сослаться на полный путь тестового файла класса в set_include_path () выражение. Как это:

set_include_path(get_include_path() . PATH_SEPARATOR . 
                        dirname(__FILE__) . "/../src");

Этот фрагмент может быть помещен в свой собственный заголовочный файл SetupIncludePath.php и включен в тестовые файлы с 'require_once', так, чтобы наборы тестов не добавляли путь многократно.

2
ответ дан 2 December 2019 в 00:04
поделиться

Необходимо изменить include_path PHP так, чтобы он знал, где найти MyClass.php когда Вы include() он в Вашем модульном тесте.

у Вас могло быть что-то вроде этого наверху Вашего тестового файла (предшествующий Вашему включающий):


set_include_path(get_include_path() . PATH_SEPARATOR . "../src");

Это добавляет Ваш src каталог на включать путь и должно позволить Вам разделять свой реальный код от Вашего тестового кода.

4
ответ дан 2 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: