Как определить версию PHPUnit - PullRequest
12 голосов
/ 29 января 2011

Я пишу модульные тесты, используя более старую версию PHPUnit (3.4), и поэтому не могу использовать все поддерживаемые утверждения, перечисленные в руководстве 3.5 и 3.6.Хотя я мог бы реинжинировать тесты для мгновенной поддержки в своей среде здесь, я хотел бы сделать свои тесты зависимыми от текущей версии PHPUnit, чтобы он использовал assertsInstanceOf (), как только моя или любая другая среда тестирования предоставляет PHPUnit 3.5+.

Я думал, что PHPUnit автоматически определит некоторую константу, но я не смог найти никакой документации по ней.

Есть ли способ достичь этого, не требуя определения константыпри вызове из командной строки?

Ответы [ 4 ]

15 голосов
/ 29 января 2011

Вы можете получить версию, используя PHPUnit_Runner_Version класс: https://github.com/sebastianbergmann/phpunit/blob/3.5/PHPUnit/Runner/Version.php

И исходя из этого - прекратите выполнение тестов или делайте что хотите.

5 голосов
/ 16 февраля 2018

Работает на Mac:

phpunit --version

@ Marc B

4 голосов
/ 03 марта 2014

Вы можете добавить аннотацию до теста:

/**
 * @requires PHPUnit 3.7.32
 */
function testRequiringCertainPHPUnit() {
}
4 голосов
/ 20 февраля 2013

Чтобы сделать тест неполным для более старых версий:

    if (
        !method_exists('PHPUnit_Runner_Version','id')
        || version_compare(PHPUnit_Runner_Version::id(), '3.7', '<=')
    ) {
        $this->markTestIncomplete('need phpunit >= 3.7 to run this test');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...