我需要测试一些报告,这些报告有复杂的数据结构和大量数据影响,因此为此目的创建固定装置将是非常繁琐的工作。我想使用现有的数据库(实际上是它的副本)来测试报告。
如何在cakephp 3测试中实现这一目标? 是否可以从cakephp 3中的数据库中加载灯具(不是表格结构)的记录?
答案 0 :(得分:4)
您可以使用 Bake 实用程序从表格中的现有记录创建灯具:
--records, -r Generate a fixture with records from the non-test
database. Used with --count and --conditions to limit
which records are added to the fixture.
--count, -n When using generated data, the number of records to
include in the fixture(s). (default:
1)
例如:
cake bake fixture you_table_name -r -c 100
答案 1 :(得分:0)
由于PHPUnit会删除每次测试之间有权访问的数据库中的所有内容,因此您可能不希望授予其访问生产数据库的权限。
您正在寻找的解决方案可能是编写每个fixture Model.new
函数,以根据从生产数据库中提取的数据构建其init()
属性。
像这样(未经证实):
$records
请注意,这会降低您的测试速度,但缓存结果会减轻这一点。