用 @requires 来跳过测试
用 @requires 来跳过测试
除了上述方法,还可以用 @requires
标注来表达测试用例的一些常见前提条件。
Table 7.3. 可能的 @requires 用法
类型 | 可能的值 | 范例 | 其他范例 |
---|---|---|---|
PHP |
任何 PHP 版本标识符 | @requires PHP 5.3.3 | @requires PHP 5.4-dev |
PHPUnit |
任何 PHPUnit 版本标识符 | @requires PHPUnit 3.6.3 | @requires PHPUnit 4.6 |
OS |
用来对 PHP_OS 进行匹配的正则表达式 | @requires OS Linux | @requires OS WIN32|WINNT |
function |
任何对 function_exists 而言有效的参数 | @requires function imap_open | @requires function ReflectionMethod::setAccessible |
extension |
任何扩展的名称 | @requires extension mysqli | @requires extension curl |
Example 7.3. 用 @requires 来跳过测试
<?php
/**
* @requires extension mysqli
*/
class DatabaseTest extends PHPUnit_Framework_TestCase
{
/**
* @requires PHP 5.3
*/
public function testConnection()
{
// 测试要求有 mysqli 扩展,并且 PHP >= 5.3
}
// ... 所有其他要求有 mysqli 扩展的测试
}
?>
如果使用了某种在特定版本的 PHP 下无法编译的语法,请在此章节内查找 XML 配置信息中关于版本依赖的信息:the section called “测试套件”