牛骨文教育服务平台(让学习变的简单)

用 @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 “测试套件”