Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用大量种子数据测试Rails应用程序_Ruby On Rails_Testing_Rspec_Factory Bot_Fixtures - Fatal编程技术网

Ruby on rails 使用大量种子数据测试Rails应用程序

Ruby on rails 使用大量种子数据测试Rails应用程序,ruby-on-rails,testing,rspec,factory-bot,fixtures,Ruby On Rails,Testing,Rspec,Factory Bot,Fixtures,我正在维护Rails 3.1应用程序。App db有50多个表,其中可能有30个表需要种子数据才能正常运行 App有大量的统计数据(作为种子数据),有些表格包含超过150000条记录。我一直在使用fixture进行测试(实际上使用rake任务从devdb创建fixture文件)。由于庞大的夹具文件,测试变得越来越慢。我们谈论的是20多分钟来运行整个测试套件 在我开始做测试的时候,固定装置是很好的选择。现在我不太确定了。我一直在读像factory_girl、capybara、rspec和spork

我正在维护Rails 3.1应用程序。App db有50多个表,其中可能有30个表需要种子数据才能正常运行

App有大量的统计数据(作为种子数据),有些表格包含超过150000条记录。我一直在使用fixture进行测试(实际上使用rake任务从devdb创建fixture文件)。由于庞大的夹具文件,测试变得越来越慢。我们谈论的是20多分钟来运行整个测试套件

在我开始做测试的时候,固定装置是很好的选择。现在我不太确定了。我一直在读像factory_girl、capybara、rspec和spork这样的工具。我已经做了一些测试,他们似乎很好,很有趣的使用

基本上我想知道你将如何测试这种设置


赛程太慢了。谢谢你的帮助

好吧,对于像您这样庞大的应用程序,测试套件也应该运行很长时间。我认为这里最大的改进是在数据库中使用更少的测试数据。
您可以测试关联或任何与数据库相关的操作,但是当您测试模型功能时,例如,在
#save
方法上设置模拟期望,并验证您的代码是否更改了模型的
@属性。我认为对数据库进行测试是多余的。您不必将rails堆栈作为测试目标(保存到数据库时就是这样做的),因为它已经过了非常彻底的测试。

谢谢您的回答!我正在考虑完全移除固定装置,并且只对数据库中的种子数据进行测试。此外,我希望使用database_cleaner gem清理某些表(不是种子数据表),以便为每个测试重新开始。这种方法的想法?很抱歉,我不能向您推荐任何在测试环境中清理数据库的方法。我的测试没有使用数据库,我也不知道这样的策略。