2012-01-18 5 views
5

Я новый пользователь PHPUnit, и я преобразовываю наши существующие тесты (утверждает) в фреймворк PHPUnit, чтобы обеспечить лучшую тестовую среду и покрытие кода. Тем не менее, мне нужно знать, как попытаться заставить PHPUnit работать с нашей тестовой структурой кода.Конфигурирование имен файлов для PHPUnit

Наши каталоги проекта похожи на следующее:/
      CREDIT_CARD.class
Application1 - Класс именовании для CREDIT_CARD
      CREDIT_CARD.class.test - Автоматизированные тесты для CREDIT_CARD.class
      Файл.php - Файл приложения
      Файл.php.test - Auto спаренных тесты для file.php
      File2.php
      File2.php.test - Автоматизированные тесты для File2.php

Application2/
      ANOTHER_CLASS.class
      ANOTHER_CLASS .class.test
      DifferentFile.php - Файл приложения
      DifferentFile.php.test - Автоматизированные тесты для file.php

Lib/
      UTIL/
            SHARED_CLASS.class
            SHARED_CLASS. class.test
      VISUAL/
            VISUAL_TOOL.class
            VISUAL_TOOL.class.test

Мне нужно знать, как настраивать тесты PHPUnit, так что я могу запустить тесты в lib/UTIL/.test (которые загружают файл класса с использованием метода setUp()), а затем тест lib/VC/ .test, после которого (в случае успеха) тестируются Application1 и Application2. Я видел упоминание файла PHPUnit_xml и файла начальной загрузки, но я не могу найти шаблон ссылки, чтобы убедиться, что это то, что мне нужно. Любая помощь будет оценена по достоинству.

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

Заранее благодарим за любую помощь.

+0

Значит, 'Filename.class.test' содержит класс, который расширяет PHPUnit_Framework_TestCase? Правильно ли я понял? – edorian

+0

Да. Класс TEST_SOME_CLASS расширяет PHPUnit_Framework_TestCase { защищенную функцию нАлАдкА() { если require_once (подстрока (__ FILE__, 0, -5)) (class_exists ('some_class!')); // полоса '.test' расширение } \t функция testConstants общественных() \t { \t $ this-> assertEquals (some_class :: TYPE_1, 1); $ this-> assertEquals (SOME_CLASS :: TYPE_2, 2); \t} } –

ответ

7

У вас есть файлы с именем Foo.class.test вместо значения PHPUnit FooTest.php?

Это не должно быть большой проблемой, поскольку PHPUnit позволяет вам настроить, какие суффиксы файлов следует рассматривать как «тесты». Test.php только по умолчанию.

Посмотрите на xml config part of the docs regard test organisation

Что вы хотите:

<testsuites> 
    <testsuite name="Our new shiny phpunit test Suite"> 
     <directory suffix=".test">./sourceFolder</directory> 
    </testsuite> 
    </testsuites> 

PHPUnit будет сканировать через исходную папку, включая все файлы, которые заканчиваются на .class.test и оставляя другие файлы, как есть.

+0

Как есть некоторые неклассовые тестовые файлы, возможно, это должно быть 'suffix =". Test ". –

+0

Ах спасибо @ Давид. Хорошая точка – edorian

+0

Спасибо за предложения. Есть ли вероятность получить образец файла, размещенного с некоторыми из этих предложений, так как у меня есть разные файлы, и у меня мало опыта работы с PHPUnit? Я смотрю ссылку, и в основном ищут базовый файл, чтобы начать с проб и ошибок и проверить понимание с документом. –

Смежные вопросы