Структура файловой системы / каталога для модульных и функциональных тестов с помощью PHPUnit

Мне нужно добавить интеграционные тесты в мой набор тестов. Хотя имя - PHPUnit, я считаю, что здесь есть много поддержки для запуска не модульных тестов. Моя схема выглядит примерно так:

<root>
    lib/
        Foo/
            Component.php
    tests/
        lib/
            Foo/
                ComponentTest.php
        resources/
            fixtures/

Есть (как я это вижу) три способа добавить сюда тесты более высокого уровня, чем единичные:

Добавление параллельной структуры

<root>
    tests/
        unit/
            lib/
                Foo/
                    ComponentTest.php
        integration/
            lib/
                Foo/
                    ComponentTest.php
        resources/
            fixtures/

Это должно сработать, за исключением того, что теперь нет Это отношение 1: 1 класс: тестовый класс, которое может (и, вероятно, будет) сбивать с толку Netbeans.

Добавление /tests/lib/Foo/ComponentIntegrationTest.php

Имеет ту же проблему, что и выше, с меньшим количеством каталогов.

Добавление тестов к существующему классу тестов с обозначением типа @group integration

Это сохраняет соотношение 1: 1, но значительно усложняет набор тестов. Кроме того, поскольку SUT необходимо будет вызывать в изменяющейся среде, я не могу просто повторно использовать _setup () из модульных тестов.

Идеи?

5
задан Dalibor Karlović 31 October 2011 в 12:51
поделиться