【问题标题】:Can rails test speed be increased?轨道测试速度可以提高吗?
【发布时间】:2010-03-22 17:36:24
【问题描述】:

我最近转换到 TDD,但随着我的代码库规模和复杂性的增长,我发现每次我想运行测试时,我都在等待越来越长的框架加载时间。

我知道 rspec 的 spec_server,但我将 Test::Unit 与 shoulda 一起使用。我尝试了 Snailgun (http://github.com/candlerb/snailgun),但发现速度几乎没有增加。我也尝试过 spork-testunit (http://github.com/timcharper/spork-testunit),但它与我现有的测试不完全兼容。

运行测试的延迟是一个明确的痛点,让我远离 TDD(至少在 Rails 中)。有人知道其他选择吗?

【问题讨论】:

    标签: ruby-on-rails unit-testing testunit


    【解决方案1】:

    您是否在需要的地方使用了模拟?

    您没有提到模拟框架。你在用一个吗?还是您的测试规模很大,它们是否会测试诸如登录 Web 服务器或运行数据库查询之类的东西?

    我听说过一个经验法则,即单元测试应该每秒运行大约 100 次,这排除了连接和使用实际资源的可能性。访问实际资源的测试往往被认为是集成测试,它们被理解为比单元测试运行得更慢。

    【讨论】:

    • 我要补充一点,Mocha 非常适合测试!
    【解决方案2】:

    您可以将database.yml 配置为使用内存中的 SQLite3 数据库进行测试。

    【讨论】:

      【解决方案3】:

      尝试自动测试。它监视您的文件并在后台运行它们。当您完成编辑时,它已经完成了测试供您查看。

      gem install autotest-rails
      autotest
      

      https://rubygems.org/gems/autotest-rails

      http://ph7spot.com/musings/getting-started-with-autotest

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-07
        • 2022-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多