我正在处理一个CakePHP项目。最近,我将UnitTests添加到项目中。我的系统配置是:
但我的一项测试运行得很慢。它需要37分钟才能完成。在这个测试中,我使用了10个夹具,但是我没有从另一个数据库中加载它们,因此,我的治具类只包含以下一行:
public $import = array('model' => 'Model', 'records' => false);测试包含三个testAction()-calls。其中两个运行得很快,第三个没有运行。第三个调用运行一个控制器操作,执行以下操作:
当我通过点击网页界面中的图标来运行相同的控制器动作时,它会在<1mniutte之后完成。但是,正如我告诉过的,在单元测试中每一个testAction()运行它需要37分钟。
知道怎么系这个UnitTest吗?我的另一个UnitTests只需要<1分钟。
发布于 2014-01-31 16:43:06
您需要在日志文件中分析测试中的每个操作,以便知道问题所在。
使用PHP的microtime()函数精确地测量事物。
此外,使用日志文件监视正在发生的事情并获得操作开销的粗略估计也是一个很好的实践。这样的日志文件将立即显示瓶颈所在.
因此,我建议您设置日志记录,如果需要精确的计时,请使用microtime()函数。
发布于 2014-02-13 14:12:35
这是而不是单元测试。您正在测试网络连接、bash (或其他什么)解释程序和数据库。UnitTest 必须只测试一个代码的单元--通常是类。您不能使用网络或数据库。如果您测试动作类的顺序,则应该使用模拟对象和方法类的期望。
https://stackoverflow.com/questions/21480178
复制相似问题