【问题标题】:How to combine autotest and spork in Rails testing?如何在 Rails 测试中结合 autotest 和 spork?
【发布时间】:2010-11-25 07:09:35
【问题描述】:

自动测试通过仅运行已更改的测试来提高测试运行的速度。

但我想通过使用 spork 预加载 Rails 环境来进一步推动它,这样我将获得更快的反馈。

这可能吗?

自动测试:https://github.com/grosser/autotest

Spork : http://github.com/timcharper/spork

【问题讨论】:

    标签: ruby-on-rails testing rubygems autotest spork


    【解决方案1】:

    ARTICLE1 mikbe has you covered! 我想在这里改写一下,但这篇文章做得很好。

    如果您碰巧在 OSX 上,也有使用 Growl 通知托盘的说明。

    ARTICLE2 Ruby Inside also has a walkthrough 适用于 Rails 3 和 RSpec 2。

    【讨论】:

    • 太棒了!感谢提供这篇好文章!它非常适合我。
    【解决方案2】:

    如果您使用 Ruby 1.9 并希望将 spork 和 autotest 与 Test::Unit(实际上是 MiniTest)一起使用,请尝试以下操作:

    宝石文件:

    group :test do
      # Newer version of test::unit:
      gem 'minitest'
    
      # spork preloads a rails instance which is forked every time the tests are
      # run, removing test startup time.
      gem 'spork'
    
      # Run 'spork minitest' to start drb server (test server). Use 'testdrb' to
      # run individual tests via spork.
      gem 'spork-minitest'
    
      # Run 'bundle exec autotest' to rerun relevant tests whenever a file/test is
      # changed. '.autotest' makes sure the tests are run via test server (spork).
      gem 'autotest-standalone'
    
      # -pure gives us autotest without ZenTest gem.
      gem 'autotest-rails-pure'
    end
    

    .autotest:

    class Autotest
      # run tests over drb server (spork)
      def make_test_cmd files_to_test
        if files_to_test.empty?
          "" # no tests to run
        else
          "testdrb #{files_to_test.keys.join(' ')}"
        end
      end
    end
    

    (注意:说明上写着bin/testdrb,但我将其更改为testdrb 以使其适合我。)

    在终端中:

    spork minitest --bootstrap
    

    编辑test/test_helper.rb并按照说明操作。

    上述设置完成一次后,就可以启动测试服务器了:

    spork minitest
    

    最后在另一个终端开始自动测试:

    bundle exec autotest
    

    并且(希望)享受使用 MiniTest 进行真正快速的自动测试。

    【讨论】:

      【解决方案3】:

      我还没有尝试过,但chapter 3 of the RailsTutorial 中有一个部分告诉了一些“黑客”来设置 spork。该教程目前说:

      ...在撰写本文时,Spork 尚未正式支持 Rails 3

      本章继续讲述如何使用自动测试进行设置。要知道的一件事是您需要

      --drb

      在您的 .rspec 文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多