Интеграция тестовых примеров PHPT с PHPUnit
Как я могу заставить PHPUnit запускать тестовые примеры PHPT и интегрировать статус pass/fail в общие показатели? Я уже знаю, как запускать эти тесты с помощью run-phpt
из командной строки, но я хочу запустить их из PHPUnit вместе с другим тесты.
Я знаю, что существует PHPUnit_Extensions_PhptTestCase
, но я не мог найти никаких примеров того, как его использовать.
Ответы
Ответ 1
В то время как основной пункт этого сообщения в блоге о загрузке файлов с файлами заключается в том, чтобы описать, как писать тесты PHPT, показывает, как интегрировать их в PHPUnit в конце сообщения. Короче говоря, вы передаете абсолютный путь к файлу .phpt
родительскому конструктору.
<?php
require_once 'PHPUnit/Extensions/PhptTestCase.php';
class UploadExampleTest extends PHPUnit_Extensions_PhptTestCase {
public function __construct() {
parent::__construct(__DIR__ . '/upload-example.phpt');
}
}
В качестве альтернативы вы можете использовать класс PHPUnit_Extensions_PhptTestSuite
, который принимает каталог как свой первый аргумент конструктора и затем ищет все *.phpt файлы в этом каталоге.
Ответ 2
В вашей конфигурации XML phpunit вы можете добавить testuite с именем PHPT (или любое другое имя) и указать каталог, в который вы разместили файлы .phpt
, с суффиксом, установленным на ".phpt
". Затем Phpunit выполнит все phpt-test файлы из этого каталога:
<testsuites>
<testsuite name="Main Test Suite">
<directory>test</directory>
</testsuite>
<testsuite name="PHPT Test Suite">
<directory suffix=".phpt">test/phpt</directory>
</testsuite>
</testsuites>
В этом примере каталог test/phpt
содержит файлы .phpt
.
Информация о формате, в котором структурированы и написаны тесты .phpt
, доступна по глубине: