2016-04-28 3 views
0

Когда я пытаюсь выполнить некоторые базовые модульные тесты на рубине с помощью рейка, он, похоже, отлаживает интерпретатор ruby. Это заканчивается тем, что я вижу тонну предупреждающих сообщений в STDOUT. Я не уверен, почему это происходит, и если это так?Ruby Rake - Running Ruby -w по умолчанию?

D:\dev\git_repos\app_folder>ruby -v 
ruby 2.0.0p647 (2015-08-18) [i386-mingw32] 

D:\dev\git_repos\app_folder>rake test TEST=test/midrange_portal_test.rb 

как 4 страницы предупреждений

вывода, который заставляет меня верить отладки завернут:

Command failed with status (2): [ruby -w -I"lib;test" - 
I"D:/apps/Ruby200/lib/ruby/gems/2.0.0/gems/rake-11.1.2/lib" 
"D:/apps/Ruby200/lib/ruby/gems/2.0.0/gems/rake-11.1.2/lib/rake/rake_test_loader.rb" "test/midrange_portal_test.rb" ] 

D:\dev\git_repos\app_folder>gem environment 
RubyGems Environment: 
    - RUBYGEMS VERSION: 2.0.14.1 
    - RUBY VERSION: 2.0.0 (2015-08-18 patchlevel 647) [i386-mingw32] 
    - INSTALLATION DIRECTORY: D:/apps/Ruby200/lib/ruby/gems/2.0.0 
    - RUBY EXECUTABLE: D:/apps/Ruby200/bin/ruby.exe 
    - EXECUTABLE DIRECTORY: D:/apps/Ruby200/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-mingw32 
    - GEM PATHS: 
    - D:/apps/Ruby200/lib/ruby/gems/2.0.0 
    - H:/.gem/ruby/2.0.0 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 

Обратите внимание, как команда "рубин -w". Я не знаю, почему он по умолчанию использует этот уровень отладки? Любая помощь будет принята с благодарностью, поскольку я совершенно тупой.

ответ

0

Итак, после многократного выкапывания получается версия rake im, использующая ruby ​​с флагом -w по умолчанию. Если вы посмотрите в /gems/rake-11.1.2/lib/rake/testtask.rb есть логическое значение, которое устанавливает предупреждение рубин флаг:

def initialize(name=:test) 
    @name = name 
    @libs = ["lib"] 
    @pattern = nil 
    @options = nil 
    @test_files = nil 
    @verbose = false 
    @warning = true <-------------------------- 
    @loader = :rake 
    @ruby_opts = [] 
    @description = "Run tests" + (@name == :test ? "" : " for #{@name}") 
    yield self if block_given? 
    @pattern = 'test/test*.rb' if @pattern.nil? && @test_files.nil? 
    define 
end 

Вы можете обезьяна патч это, чтобы отключить его, но во всех честность его, вероятно, просто хорошая идея оставить его и просто исправить ваши предупреждения. В моем случае я имею дело с тонны устаревшего кода, который обновляется только так часто, что на самом деле не стоит того.