我已经为 API编写了用phpunit测试的RESTful单元。
现在,我想使用phpunit进行进一步的集成测试,。由于这些都要慢得多,所以我构建了一个特殊的测试套件“集成”,必须显式地调用它。因此,单元测试可以经常运行并保持快速。
bootstrap.php的集成测试套件执行数据库转储和种子。集成测试非常慢,因此它们不会像单元测试那样经常被调用。它们只会由人类来管理。
为了防止意外删除本地开发数据库,我希望testscript在转储数据库之前提示确认。只有在确认后,数据库才会被删除并重新播种。
谢谢。
发布于 2015-03-17 13:01:04
为了防止意外删除本地开发数据库,我希望testscript在转储数据库之前提示确认。只有在确认后,数据库才会被删除并重新播种。
基本提示符可以如下所示:
<?php
echo "Are you sure you want to drop the database?\n";
echo "Type 'yes' or 'y' to continue: ";
$handle = fopen("php://stdin","r"); // read from STDIN
$line = trim(fgets($handle));
if($line !== 'yes' && $line !== 'y'){
echo "Execution stop.\n";
exit;
}
echo "\n Continuing execution: dropping database.\n";在phpunit测试中可以提示输入吗?
是的,这是可能的-但是小心可能的超时。
一个提示是否损害了“集成测试的设计原则”?
在测试期间,用户数据提示符(“数据输入提示”)将表明真正的自动化状态很糟糕。这表明您的测试还没有准备好运行完全自动化。
此提示在测试设置或引导阶段是“意外保护”,并且在装箱或孤立的测试环境中不需要它。
最好努力实现完全的测试自动化,并使用持续集成服务器来运行您的功能测试和集成测试。(就像@halfer之前指出的那样。)
请记住,您还可以检测到测试运行的环境。当您在CI服务器上时,只需跳过提示。
嗯,有某种“测试模式”或“最佳实践”。
parallel的执行。https://stackoverflow.com/questions/29082082
复制相似问题