运行 PHP 扩展测试
除了这四个文件外,ext_skel
脚本还创建了一个 tests
目录,里面有几个 *.phpt
文件。这些都是自动测试,可以通过运行 make test
命令一并执行:
$ make test
…
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 0
Exts tested : 26
---------------------------------------------------------------------
Number of tests : 3 3
Tests skipped : 0 ( 0.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 0 ( 0.0%) ( 0.0%)
Tests passed : 3 (100.0%) (100.0%)
---------------------------------------------------------------------
Time taken : 1 seconds
=====================================================================
该命令将打印测试执行进度和结果摘要。一个好的做法是,用相应的测试覆盖大多数扩展逻辑,并始终在更改后运行测试。
让我们研究一下测试文件 tests/003.phpt
。
--TEST--
test_test2() Basic test
--SKIPIF--
<?php
if (!extension_loaded('test')) {
echo 'skip';
}
?>
--FILE--
<?php
var_dump(test_test2());
var_dump(test_test2('PHP'));
?>
--EXPECT--
string(11) "Hello World"
string(9) "Hello PHP"
该文件由几个部分组成:
-
--TEST--
定义测试名称。 -
--SKIPIF--
(可选)包含用于检查跳过条件的 PHP 代码。如果打印出以 "skip" 开头的字符串,则整个测试将被跳过。如果没有加载扩展名test
,我们的部分就会打印 "skip",因为检查未加载的函数没有意义(测试会失败)。 -
--FILE--
部分包含主测试 PHP 代码。 -
--EXPECT--
部分包含测试脚本的预期输出。