2016-04-28 7 views
0

Wenn ich versuche, einige grundlegende Unit-Tests auf Ruby mit Rake durchzuführen, scheint es, dass Debugging auf dem Ruby-Interpreter aktiviert wird. Dies führt dazu, dass ich eine Menge Warnmeldungen in STDOUT sehe. Ich bin mir nicht sicher, warum das passiert und ob es sein sollte?Ruby Rake - Ruby -w standardmäßig ausgeführt?

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 

wie 4 Seiten von Warnungen

Ausgabe, die mir das Debuggen führt zu glauben, nach oben gedreht:

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/ 

Beachten Sie, wie der Befehl "ruby -w". Ich weiß nicht, warum diese Debugging-Stufe standardmäßig verwendet wird. Jede Hilfe würde sehr geschätzt werden, da ich ziemlich ratlos bin.

Antwort

0

Also nach viel graben stellt sich heraus, die Version von Rake im verwendet ruby ​​mit dem-w-Flag standardmäßig. Wenn Sie in /gems/rake-11.1.2/lib/rake/testtask.rb aussehen gibt es eine boolean, welche die rubin Warnflag setzt:

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 

Sie können diese Affen-Patch, um sie auszuschalten, sondern in allen Ehrlichkeit ist wahrscheinlich nur eine gute Idee, es zu lassen und nur Ihre Warnungen zu beheben. In meinem Fall habe ich es mit einer Menge Legacy-Code zu tun, der nur von Zeit zu Zeit aktualisiert wird und sich nicht wirklich lohnt.