PHP 主动化测试框架的原理和完成
在清单 3中的运行示例中,实践的履行语句是 “ $HOME÷php-5。2。8÷sapi÷cli÷php run-tests。php $HOME÷php-5。2。8÷sapi÷cli÷tests÷001。phpt ” 。其中,“ 001。phpt ” 是测试脚本;“ run-tests。php ” 为 PHP 测试的驱动脚本,是民间脚本;而 “ $HOME÷php-5。2。8÷sapi÷cli÷php ” 是运行驱动脚本的 PHP 可履行对象。这里须要指出的一点是,环境变量 TEST_PHP_EXECUTABLE 中设置的 PHP 可履行对象和这里运行测试脚本中的 “ $HOME÷php-5。2。8÷sapi÷cli÷php ” 尽管指向的是同一个可履行对象,但其意义是不一样的。环境变量 TEST_PHP_EXECUTABLE 中设置的 PHP 是被测试对象,而运行测试中运用的 “ $HOME÷php-5。2。8÷sapi÷cli÷php ” 只是为了用来驱动测试脚本运行。
在图 1 中能够详细的看出 PHP 测试历程中两个 PHP 可履行对象及两个 PHP 脚本的关系。在测试的历程中,首先是由 “ $HOME÷php-5。2。8÷sapi÷cli÷php ” 去运行脚本 “ run-tests。php ” (第 1 步)。 在 “ run-tests。php ” 脚本中,将解析环境变量的值 “ TEST_PHP_EXECUTABLE =$HOME÷php-5。2。8÷sapi÷cli÷php ” (第 2 步)。这里 PHP 可履行对象是被测试的 PHP 。“ run-tests。php ” 脚本中还将把测试脚本 “ 001。phpt ” 中的 FILE 段解析为 PHP 脚本 “ 001。php ” (第 3 步), 用 “ TEST_PHP_EXECUTABLE ” 设置的那个 PHP 可履行对象去履行 “ 001。php ” (第 4 步)并得到实践输入后果,在比对实践输入后果和 EXPECT 段的等待后果后,输入测试后果(第 5 步)。以上运行历程能够从对 “ run-tests。php ” 脚本的剖析中得出。
图 1。 PHP 测试运行关系图
通过以上实例剖析能够看出,PHP 民间测试的主动化重要依靠于 “ run-tests。php ” 脚本和测试用例脚本 PHPT 。而 “ run-tests。php ” 脚本正是 PHP 测试主动化框架的搭建者。从代码清单 5 中,能够细微看出 PHP 主动化测试框架的重要责任。
清单 5。 PHP 主动化测试代码片断
$test_cnt = count($test_files);
if ($test_cnt) 【
putenv(“NO_INTERACTION=1“);
verify_config();
write_information($html_output);
usort($test_files, “test_sort“);
$start_time = time();
if (!$html_output) 【
echo “Running selected tests。、n“;
】 else 【
show_start($start_time);
】
$test_idx = 0;
run_all_tests($test_files, $environment);
$end_time = time();
if ($html_output) 【
show_end($end_time);