Ответ 1
Вы можете получить версию, используя класс PHPUnit_Runner_Version
: https://github.com/sebastianbergmann/phpunit/blob/3.5/PHPUnit/Runner/Version.php
И на основе этого - прекратите выполнение своих тестов или сделайте все, что захотите.
Я пишу модульные тесты, используя устаревшую версию PHPUnit (3.4), и поэтому не могу использовать все поддерживаемые утверждения, перечисленные в руководстве по 3.5 и 3.6. Хотя я мог бы провести тесты реинжиниринга для мгновенной поддержки в моей среде здесь, я хотел бы сделать мои тесты зависимыми от текущей версии PHPUnit, так что он использует assertsInstanceOf(), как только моя или любая другая тестовая среда предоставляет PHPUnit 3.5+.
Я думал, что будет некоторая константа, автоматически определяемая PHPUnit, но я не мог найти на ней никакой документации.
Есть ли способ достичь этого, не требуя определения константы при вызове в командной строке?
Вы можете получить версию, используя класс PHPUnit_Runner_Version
: https://github.com/sebastianbergmann/phpunit/blob/3.5/PHPUnit/Runner/Version.php
И на основе этого - прекратите выполнение своих тестов или сделайте все, что захотите.
Чтобы сделать проверку неполной для более старых версий:
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');
}
Вы можете добавить аннотацию перед тестом:
/**
* @requires PHPUnit 3.7.32
*/
function testRequiringCertainPHPUnit() {
}
Работает на mac:
phpunit --version
@Marc B