我正在使用较旧版本的PHPUnit(3.4)编写单元测试,因此无法使用3.5和3.6手册中列出的所有支持的断言.虽然我可以在我的环境中重新设置测试以获得即时支持,但我想让我的测试依赖于当前版本的PHPUnit,所以只要我或任何其他人的测试环境提供PHPUnit 3.5+,它就会使用assertsInstanceOf() .
我以为会有一些由PHPUnit自动定义的常量,但是我找不到任何关于它的文档.
在调用命令行时,有没有办法实现这一点而不需要定义常量?
zer*_*kms 15
您可以使用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');
}
Run Code Online (Sandbox Code Playgroud)
您可以在测试前添加注释:
/**
* @requires PHPUnit 3.7.32
*/
function testRequiringCertainPHPUnit() {
}
Run Code Online (Sandbox Code Playgroud)