2012-07-14 68 views
3

我已經開始學習使用在Windows 7上運行的Ruby on Rails,並且運行測試的時間很痛苦,我在想我是否可以加快速度。 現在我正在使用默認的測試框架(從ActionController繼承),SQLite數據庫和webrick web服務器。如何加速在Windows上的軌道測試紅寶石?

雖然單元和功能測試報告的運行時間少於2秒,但從運行命令行到完成的測試實際上是40秒。

朋友推薦我使用警衛。看起來它會幫我在保存時立即開始測試,但似乎真正的成本是啓動網絡服務器或數據庫。我想知道是否可以更好地設置apache或mysql並在本地使用它們。

無論如何,人們有什麼技巧可以加速Windows上的ruby測試?我試着在Amazon EC2 linux micro實例上運行測試(再次使用webrick和sqlite),並且啓動時間很長(儘管我沒有時間)。

我試過「耙測試 - 跟蹤」。有一個顯著的停頓:

  • 立即輸出
  • 的第一行outputing之間「執行環境」和「執行DB:abort_if_pending_migrations」之前
  • 之間「執行測試:單位」和「運行選項:「

    第一次暫停似乎更糟。

+0

你不需要啓動任何網絡服務器來運行單位和功能。嘗試運行'耙測試 - 跟蹤',看看你是否可以找出它掛在哪裏 – olore 2012-07-14 22:15:35

+0

感謝olore,我跑過蹤跡,並注意到停頓發生的地方。 – 2012-07-22 21:25:17

回答

1

最好的辦法是使用spork,它現在可以在Windows中使用。它通過預先填充一個準備好的進程池(稱爲「雜誌」策略)在窗口上運行。其結果是Web服務器啓動時間大大縮短。

如果Windows上的運行軌真是瓶頸,那麼您可以使用VirtualBox運行虛擬機並運行Ubuntu的一個實例,並在虛擬機中的您的rails項目上工作。

+0

僅供參考我通過電子郵件發送了「spork-rails」的老維護者之一,他們告訴我使用'spring'代替。 – 2016-09-28 00:46:35

+1

@KaMok謝謝,但似乎'春'不支持Windows。從文檔'Spring大量使用Process.fork,所以無法在不支持分叉的平臺(Windows,JRuby)上加快速度「。 – Dty 2016-09-28 01:40:05

+1

是的,我意識到了。我現在沒有使用任何東西來加速我的測試,做TDD非常痛苦。幾個月來一直圍繞這個話題進行搜索 – 2016-09-28 02:25:02