codecamp

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

跳过测试
数据库测试所支持的供应商
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

3. 命令行测试执行器

7. 未完成的测试与跳过的测试

12. 测试的其他用途

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }