Соглашения об именовании файлов в PHPUnit - PullRequest
3 голосов
/ 14 ноября 2008

Я только начинаю пробовать phpunit на существующем коде. Соглашение об именах, которое мы используем, заключается в том, что класс MyClass должен находиться в MyClass.class.php PHPUnit требует, чтобы файл назывался MyClass.php.

Есть ли способ обойти это?

Я заметил это при попытке создать тестовый класс скелета:

phpunit --skeleton-test MyClass.class

PHPUnit 3.3.4 by Sebastian Bergmann.

Could not find class "MyClass.class" in "/home/jd/skeleton/classes/MyClass.class.php".
Fatal error: Call to a member function getOutClassName() on a non-object in /usr/share/php/PHPUnit/TextUI/Command.php on line 470

Ответы [ 2 ]

7 голосов
/ 14 ноября 2008

Это не требование, это просто предположительно. Вы можете написать свои собственные тест-кейсы.

Skeleton просто делает макет "легким путем", который делает фиктивные функции для всех ваших фиктивных функций классов.

Также

phpunit --skeleton-test MyClass  MyClass.class.php

Можешь делать что хочешь.

   Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>

--skeleton-class         Generate Unit class for UnitTest in UnitTest.php.
--skeleton-test          Generate UnitTest class for Unit in Unit.php.

поэтому, исходя из этих рассуждений, если вы не скажете ему, в каком файле находится класс, он попытается угадать, если вы скажете ему, в каком файле находится класс, он не угадает.

0 голосов
/ 31 января 2011

Я столкнулся с подобной проблемой, когда класс, для которого создается скелет, находится в пространстве имен. Я использую phpunit 3.5.6 из командной строки. Пример документации phpUnit не сработал для меня, и я не смог найти ответ в Интернете, поэтому я решил поделиться им здесь. Предположим, у вас есть класс Foo внутри директории / my / dir, и он объявлен в одном файле Foo.php, поэтому полный путь к файлу класса /my/dir/Foo.php

Также предположим, что Foo объявлен следующим образом:

<?php

namespace my\space;
class Foo
{
    ...
}

Чтобы сгенерировать тестовый скелет, я удостоверился, что нахожусь в каталоге, где находится Foo.php, и затем я выполнил следующую команду:

user[/my/dir]$ phpunit --skeleton-test my\\dir\\Foo Foo.php

Это заставило мой скелет сгенерироваться. Ключ избегал обратной косой черты, поскольку документация phpUnit упоминает пространства имен, но показывает только одну обратную косую черту. Надеюсь, это кому-нибудь поможет.

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