2010-10-19 74 views
0

我有一個以NetBeans開始的Ruby項目,所以Rake文件已經生成。有沒有一種方法可以通過命令行運行項目?是否可以通過Rake運行Ruby項目?

當我通過NetBeans使用F6時,它運行良好,我的自動化測試套件與Alt + F6一樣。我本質上尋找類似...

$ rake run

這是否存在?

回答

3

ruby​​編程的目標是(通常)編寫一個web應用程序,或編寫一個可以從命令行運行的程序。

爲Web應用程序一個rake run的選擇可能是值得的,但真的最常見的Web applicaition框架是Rails和鋼軌,您可以只運行一個Web服務器專用與script/server運行Web應用程序。

對於命令行程序,只需運行您打算用作主文件(啓動時運行代碼的文件)的任意一個ruby文件即可。 Ruby沒有Java所遇到的任何困難(例如,擁有一個具有合適的Main-class屬性的jar文件,並獲得正確的類路徑等)。所以你並不需要一個rake run的目標,因爲沒有任何複雜性需要隱藏在rakefile中。

+0

這個想法是有道理的,因爲它的命令行程序。但是當我運行ruby

.rb時,它會產生一個錯誤,因爲它無法解析它需要使用的類的正確路徑。爲什麼命令行有問題,而NetBeans沒有? – Mike 2010-10-19 21:31:37

+0

@Mike - 你在使用Ruby 1.9.2嗎?如果是這樣,那麼你的問題可能是因爲它不包括ruby用來查找ruby腳本的路徑中的當前目錄。您可以通過將項目添加到RUBYLIB環境變量來解決該問題。 – Jeremy 2010-10-19 22:15:48

+0

Netbeans可能會將項目路徑添加到'$:',以便可以相對於它解析'require'。這通常可以通過將'$:<< File.dirname(__ FILE __)'放入您計劃運行的文件中來解決。或者,使用Facets gem或Extensions gem,你會得到'require_relative',可以解決這個問題。 ('require_relative'內置於Ruby 1.9.2中) – 2010-10-19 22:20:12

2

儘管Ken是對的,但您肯定可以做一個rake任務來運行您的程序。在LIB /任務/ project.rake:

namespace :project do 
    task :run do 
     call_your_code() 
    end 
end 

然後rake project:run會做你想要什麼。

相關問題