PHPUnit — один отчет о покрытии из нескольких папок проекта?

У меня есть проект, который структурирован так:

project
├── app
│   ├── phpunit.xml
│   ├── src
│   └── tests
│       └── unit
└── modules
├── module1
│   ├── phpunit.xml
│   ├── src
│   └── tests
│       └── unit
└── module2
├── phpunit.xml
├── src
└── tests
└── unit

Все основные интерфейсы / классы находятся в app/srcи все расширения / реализации находятся в modules/**, Таким образом src папки содержат все контроллеры, модели и т. д., а также tests/unit Папка содержит все модульные тесты для этих объектов.

Я пытаюсь сгенерировать один coverage.xml отчет (и что более важно, HTML-отчет), который содержит результаты покрытия из все из испытаний по обоим app/ а также modules/, Кто-нибудь может предложить лучший способ сделать это?

3

Решение

Вы могли бы создать один phpunit.xml в корневой папке вашего проекта.

При запуске PHP Unit просто укажите на корневой каталог вашего проекта, и PHPUnit будет запускать все тестовые файлы, которые он сможет найти.

То же самое происходит с сгенерированным coverage.xml теперь он включает в себя все результаты из каждого тестового файла.

Если вы хотите разделить тестовые прогоны, посмотрите на опцию PHPunit testsuite,

Пример:

project
├── phpunit.xml
├── app (testsuite app)
└── modules
├── module1 (testsuite module2)
└── module2 (testsuite module1)

Вставьте в свой phpunit.xml

<testsuites>
<testsuite name="app">
<directory>app</directory>
</testsuite>
<testsuite name="module1">
<directory>modules/module1</directory>
</testsuite>
<testsuite name="module2">
<directory>modules/module1</directory>
</testsuite>
</testsuites>

И звоню с

phpunit --configuration phpunit.xml --testsuite module1

3

Другие решения

Других решений пока нет …