Тестирование нескольких классов с PHPUnit

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

Я использую PHPUnit для тестирования. В настоящее время у меня есть два класса в файле по имени Tests.php:

class XTest extends PHPUnit_Framework_TestCase {...}
class YTest extends PHPUnit_Framework_TestCase {...}

Однако я не могу выполнить оба класса. Я выполняю следующую команду в Windows:

php "C:\Program Files (x86)\PHP\phpunit" Tests

И это пытается выполнить тестовый класс под названием "Тесты". Вместо этого я хотел бы, чтобы это выполнило "XTest" и "YTest" и все, что находится на файле. Как я мог выполнить несколько тестовых классов легко?

5
задан Tower 1 January 2010 в 14:45
поделиться

2 ответа

PHPUnit Docs объясняет аргументы, которые ожидает запуск теста из командной строки.

В вашем случае вы предоставляете Tests, что означает, что PHPUnit ищет класс Tests в файле Tests. php.

С этим знанием легко понять, что лучшим способом организации тестов будет написание одного тестового класса в каждом файле, с именами файлов равными TestClassName. php.

Однако, если по каким-то причинам вы не хотите этого делать, вы можете предоставить дополнительный аргумент, чтобы сообщить тестовому бегуну, в каком файле объявлен класс теста:

php "C:\Program Files (x86)\PHP\phpunit" XTest Tests.php
php "C:\Program Files (x86)\PHP\phpunit" YTest Tests.php
3
ответ дан 14 December 2019 в 04:39
поделиться

Помещение всех ваших тестов в одну директорию и обращение к PHPUnit с просьбой обойти их рекурсивно сработает, но если ваши тесты находятся в разных директориях или вы хотите запустить только определенные части определенных классов тестов, то @групповая аннотация может быть тем, что вы ищете.

Когда вы выполняете свои тесты, вы можете использовать php "C": \Program Файлы (x86)\PHP\phpunit" - группа и PHPUnit выполнит только те те те тесты, которые имеют @group insert_name_of_group_to_which_xtests_and_ytests_belong в своем PHPDoc.

5
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

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