mysql5.0 测试_跳过测试 · PHPUnit5.0中文手册 · 看云

# 跳过测试

并非所有测试都能在任何环境中运行。比如说,考虑这样一种情况:一个数据库抽象层,针对其所支持的各种数据库系统有多个不同的驱动程序。针对 MySQL 驱动程序的测试当然只在 MySQL 服务器可用才能运行。

[Example 7.2, “跳过某个测试”](# "Example 7.2. 跳过某个测试") 展示了一个测试用例类 `DatabaseTest`,它有一个测试方法 `testConnection()`。在测试用例类的 `setUp()`模板方法中,检查了 MySQLi 扩展是否可用,并且在扩展不可用时用 `markTestSkipped()` 方法来跳过此测试。

**Example 7.2. 跳过某个测试**

~~~

class DatabaseTest extends PHPUnit_Framework_TestCase

{

protected function setUp()

{

if (!extension_loaded('mysqli')) {

$this->markTestSkipped(

'The MySQLi 扩展不可用。'

);

}

}

public function testConnection()

{

// ...

}

}

?>

~~~

在 PHPUnit 命令行测试执行器的输出中,被跳过的测试记为 `S`,如下例所示:

~~~

phpunit --verbose DatabaseTest

PHPUnit 5.0.0 by Sebastian Bergmann and contributors.

S

Time: 0 seconds, Memory: 3.95Mb

There was 1 skipped test:

1) DatabaseTest::testConnection

The MySQLi extension is not available.

/home/sb/DatabaseTest.php:9

OK, but incomplete or skipped tests!

Tests: 1, Assertions: 0, Skipped: 1.

~~~

[Table 7.2, “用于跳过测试的 API”](# "Table 7.2. 用于跳过测试的 API")列举了用于跳过测试的 API。

**Table 7.2. 用于跳过测试的 API**

| 方法 | 含义 |

|-----|-----|

| `void markTestSkipped()` | 将当前测试标记为已跳过。 |

| `void markTestSkipped(string $message)` | 将当前测试标记为已跳过,并用 `$message` 作为说明信息。 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值