用 @requires 来跳过测试

最后更新于:2022-04-01 03:45:23

# 用 @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](http://php.net/manual/en/reserved.constants.php#constant.php-os) 进行匹配的正则表达式 | @requires OS Linux | @requires OS WIN32\|WINNT | | `function` | 任何对 [function_exists](http://php.net/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 “测试套件”](# "测试套件")
';