2012-11-10 49 views
2

我有一個項目我想獲得代碼覆蓋。這只是一個沒有Rails的標準JRuby項目,我想知道如何讓RCov工作。我一直在努力獲得成果,而我只是不知道發生了什麼。我得到一個覆蓋文件夾來顯示,但所有的文件都要求加載器或需要加載的文件只是沒有說他們已經測試了所有(我知道在一個案例是balooney,因爲我做了測試規範爲了它)。任何人都可以向我解釋如何讓RCov工作或爲什麼我得到附加的錯誤?我不明白你爲什麼要爲包含的圖書館做什麼或者爲什麼要這樣做。從我一直在做的事情到目前爲止,我一直在運行rcov spec/.rb從我的主要appcode目錄中,並生成我的覆蓋文件夾和: rcov spec/ .rb /home/ben/.rvm/gems /jruby-1.6.8/gems/rcov-0.9.11-java/lib/rcov/differential_analyzer.rb:31警告:跟蹤(例如set_trace_func)不會捕獲所有沒有--debug標誌的事件 NoMethodError:undefined method描述「主:在./spec/ncrf_spec.rb:3RCov與JRuby

+0

是否從RSec運行RCov? http://stackoverflow.com/questions/3058676/rcov-with-rspec-2 – mguymon

回答

2

RCov對象 (根)被嚴格限制在紅寶石(MRI)1.8.x的的Matz's reference implemenation甚至不上MRI 1.9.x中工作

SimpleCov是新的方式,因爲它使用新的Ruby Coverage API。 JRuby不支持此API一段時間,或者至少沒有達到可用於生產的程度。 original issue on SimpleCov's bugtracker沒有明確說明它現在起作用。但是,有關此Ruby Coverage API工作不正常的the issue they files in the JRuby tracker指出現在已解決此問題。

我想你應該試試JRuby和SimpleCov的最新版本。

在其他話題:

Ruby的-I標誌添加目錄到$LOAD_PATH陣列,它定義了當你嘗試用require加載它們.rb文件搜索的位置。從Ruby 1.9.x開始,只有當它們位於$LOAD_PATH中的某個目錄中時才能找到它們,並且不再可以找到與Ruby進程的當前工作目錄相關的文件。

+0

我不知道RCov僅限於1.8.x,感謝SimpleCov的提示! – noname