次のテストがあります。
def test_to_show_warnings_if_app_path_is_defined
require File.dirname(__FILE__) + '/../lib/macros.rb'
warnings = $stderr.string.split(/\n/)
warnings.each { |w| assert_no_match(/warning: already initialized constant/, w) }
end
すでに初期化されている定数に関する警告がある場合は失敗するはずです。必要なファイル内の反対側には、次の問題があります。
MYPATH = ""
MYPATH = File.expand_path(File.split(APP_PATH)[0] + "/macros", __FILE__) if defined?(APP_PATH)
APP_PATH が定義されているかどうかを確認し、MYPATH に保存します。明らかに、APP_PATH が定義されている場合、定数が上書きされます。テストでこの警告がキャプチャされない限り、上記のコードを修正することはできません。私は何をすべきか?
ここのセクション 1.3 script/rails でわかるように、Rails サーバーが実行されているときに APP_PATH が定義されることに注意してください。