使用Spin運行Guard可以很好地保持我的測試速度,除非資產相關且需要編譯。似乎只要我改變了某些東西,測試環境就會重新編譯所有資產。我見過部署腳本的例子,它們只重新編譯源代碼已更改的資源。這可以做測試嗎?還是有另一種方法來加快測試的資產編譯?如何加快測試資產編譯?
我正在使用一個相當具體的設置,所以我會很樂意提供更多的信息,如果需要的話,雖然我覺得這個問題的答案可能在許多情況下,而不僅僅是我的使用。
使用Spin運行Guard可以很好地保持我的測試速度,除非資產相關且需要編譯。似乎只要我改變了某些東西,測試環境就會重新編譯所有資產。我見過部署腳本的例子,它們只重新編譯源代碼已更改的資源。這可以做測試嗎?還是有另一種方法來加快測試的資產編譯?如何加快測試資產編譯?
我正在使用一個相當具體的設置,所以我會很樂意提供更多的信息,如果需要的話,雖然我覺得這個問題的答案可能在許多情況下,而不僅僅是我的使用。
你可以看看兩個月前寫的this article。這似乎相當複雜的任務。內森只寫了一個gem that precompiles的變化,取得資產。它可以用於開發和測試環境。
編輯:這裏是another article,與加快我們的測試有關。它對於js測試有不同的觀點。
和建議一樣,但這似乎並沒有加快我的測試速度,主要是因爲測試環境似乎總是在開始時編譯資產。我認爲理想情況下,測試套件應該等到編譯完成。 –
非常了不起,有一個專門針對該主題的特殊網站。我聽說如果來自[Ruby5](http://ruby5.envylabs.com/),它被稱爲(你不會相信)[fastrailstests.com](http://www.fastrailstests.com)。正如Mikael Jackson曾經說過的那樣:「你並不孤單」。 –
那麼,該網站根本不包含任何信息,而且我不只是放棄了我的電子郵件地址,我收到了足夠多的垃圾郵件。我正在尋找一個明確的答案來解決我的問題;)和'邁克爾!= mikael',但國王肯定地說過;) –
例如,您可以避免在您的應用程序js和css文件中添加require_tree
。
此外,使用適當的文件擴展名 - 如果有東西是js - 則將其命名爲正常的js文件。相同的CSS和SCSS。
您可以在本地也預編譯的資產已在本地發展的命令rake assets:precompile
編譯 - 但記得要刪除後測試,看看在資產變動下一次(它可以在供應商的文件夾中生成)
這些都是事實,但他們也在Qumara的答案中。我知道資產:預編譯,類似的東西對測試來說很好,因爲現在有些測試失敗了,因爲他們必須等待資產進行編譯。 –
我知道,但你可以嘗試:
在application.js中寫入文件的所有js文件按照樹順序是這樣的:
// =需要的jQuery
// =需要jquery_ui
// =要求jquery.ui.core
這正是capl所說的。 –
這是個好問題!所以我正在投票,因爲我在預先編譯資產時遇到了類似的耗時問題。然而,據我所知,在預編譯資產的速度方面沒有太多可用的東西!好運 – TheMouseMan
我通常在運行套件之前預先編譯資產。如果你正在運行rails 3.2+,那麼https://github.com/ndbroadbent/turbo-sprockets-rails3。有了這個完整的編譯將會更快。如果你是套件長期運行和/或在CI上運行,並且你做了一個完整的預編譯,我也有一個S3解決方案。讓我知道你正在運行什麼版本的導軌 – mnelson
這聽起來很有希望。我現在在Rails 3.2.8上,很快就會更新到3.2.9。我對你的S3解決方案非常感興趣,因爲我正在運行我的測試(我認爲這就是你長時間運行的意思),所以只是預編譯是不夠的。 –