2016-11-08 45 views
1

在Rails(5)應用程序中運行測試時,比如說控制器rspecs,您需要提供所有外部前端依賴關係 - 需要application.jsapplication.css包含的任何內容以運行這些測試,否則當代碼顯示響應時,您會收到Sprockets::FileNotFound異常。Rails - 禁用js&css // =測試的要求

這實際上並不需要,因爲我們沒有評估生成的HTML或任何這樣的東西,並且絕對不運行JS,但它使得這些測試依賴於npm/bower不會失敗,需要時間下載等。

因此,我希望找到一種方法,在運行規範時不需要cs依賴關係 - 實際上使application.jsapplication.css爲該規範運行的目的而爲空。 (除了因爲其他模板可能不起作用require

有沒有人做過這樣的事情?怎麼樣? :)

+0

'描述'一些不需要js的東西,js:false do'可以爲你工作嗎? – fabersky

+0

@fabersky顯然不是。它看起來像訪問'image_path'例如,觸發Sprockets讀取application.js的依賴列表,並失敗es6-shim丟失(因爲這是第一個) – himdel

回答

1

你可以通過在測試環境中包括依賴關係來解決這個問題,啓用Sprockets只是Rails啓動過程的一部分,我不相信有一個簡單的方法。

+0

謝謝,這實際上我沒有考慮過。依賴關係列表*相對*是靜態的,所以將它們創建爲空文件並用它來完成可能很簡單:)。 (也就是說,我不願意將這個標記爲已接受的答案,對不起,仍然希望有更清潔的東西:)) – himdel

0

通過在測試環境中完成解決此問題。

class << ActionController::Base.helpers def image_path(path, options = {}) path end end

事實證明,不使用圖像路徑(可能還有其他相關的幫手,因人而異)不會觸發查找。