在我的config / initializers / transaction_logger.rb中,我有以下代码
P
每当我更改代码并运行测试时,我得到:
# config/initializers/transaction_logger.rb
Transaction::Logger.logger = Transaction::Logger.new("log/transations.log")
我必须运行 Failure/Error: delegate :info, :warn, :debug, :error, to: :logger
Module::DelegationError:
#<Class:Transaction::Logger>#error delegated to logger.error, but logger is nil: Transaction::Logger
,然后再次重新运行测试(似乎初始化程序的代码在spring stop
之后执行)
如何设置spring stop
以避免此问题?感谢
答案 0 :(得分:0)
作为春季文件says
为避免此问题,请不要保存对应用程序的引用 初始化代码中的常量。
似乎这也与设置类变量有关
我已将Transaction::Logger.logger
设置为Transaction::Logger
文件
# app/core/transaction/logger.rb
class Transaction::Logger < Logger
...
end
Transaction::Logger.logger = Transaction::Logger.new("log/transactions.log")