我正在使用PHPUnit(3.4)的旧版本编写单元测试,因此无法使用手册3.5和3.6中列出的所有支持的断言。尽管我可以在我的环境中重新构建即时支持测试,但我希望使测试依赖于当前版本的PHPUnit,因此,只要我或任何其他人的测试环境提供了PHPUnit 3.5+版本,就会使用assertsInstanceOf() 。如何检测PHPUnit的版本
我认为会有某种由PHPUnit自动定义的常量,但是我找不到任何文档。
有没有什么办法可以在调用命令行时不需要定义常量?
我正在使用PHPUnit(3.4)的旧版本编写单元测试,因此无法使用手册3.5和3.6中列出的所有支持的断言。尽管我可以在我的环境中重新构建即时支持测试,但我希望使测试依赖于当前版本的PHPUnit,因此,只要我或任何其他人的测试环境提供了PHPUnit 3.5+版本,就会使用assertsInstanceOf() 。如何检测PHPUnit的版本
我认为会有某种由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');
}
您可以在测试之前增加an annotation:
/**
* @requires PHPUnit 3.7.32
*/
function testRequiringCertainPHPUnit() {
}
在Mac:
phpunit --version
@Marc乙
`phpunit --version`? – 2011-01-29 15:53:55
@zerkms:试图保持与我的发行版同步。希望其他人在他们的系统上运行测试,因此可能不会使用最新的软件。 – soletan 2011-01-31 11:07:01
@Marc B:我想在代码中实现它,因为我使用“phpunit”调用所有测试,然后需要一些测试来跳过或切换行为取决于使用的phpunit版本...某种条件编码。 –
soletan
2011-01-31 11:08:57