【问题标题】:Testing Rails application with plenty of seed data使用大量种子数据测试 Rails 应用程序
【发布时间】:2012-02-29 12:52:54
【问题描述】:

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

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

在我开始进行测试的时候,固定装置是很重要的。目前我不太确定了。我一直在阅读有关 factory_girl、capybara、rspec 和 spork 等工具的信息。我已经对它们进行了一些测试,它们看起来很好用而且很有趣。

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

夹具太慢了。感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails testing rspec factory-bot fixtures


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答!我正在考虑完全删除固定装置并再次测试仅种子数据的数据库。此外,我想使用 database_cleaner gem 来清理某些表(不是种子数据表),以便为每个测试重新开始。这种方法的想法?
    • 对不起,我不能向您推荐任何在测试环境中进行数据库清理的方法。我的测试都没有使用数据库,我也不知道这样的策略。
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 2010-12-26
    • 2019-11-11
    相关资源
    最近更新 更多