Ruby on Rails在測試這一塊領域可說相當完整,在架構面有三種不同環境的設計,加上超方便的單元測試、功能測試、整合測試,搭配自動測試ZenTest、瀏覽器體驗測試Watir、連續整合CruiseControl.rb,當然還有最棒的RSpec,整體而言相當精巧、方便、簡單且務實。
如果要問還有沒有可以改進的空間,當然有,而且又是免費的Open Source。
當專案規模大或是同時進行多個專案的時候,一定需要整體性的報表,需要一份可以立即掌控整個測試狀況的報表。Tesly Jr.所提供的就是這種性質的免費服務,它本身也是用Ruby on Rails寫的Open Source軟體,所以你可以下載回去裝在自己家裡,或者也可以直接使用它所提供的免費服務,甚至也有需要付費的進階服務。
它的使用觀念是利用外掛將測試結果上傳,這樣一來就有整體報表。
如果是直接使用Tesly Jr.所提供的免費服務的話,步驟相當簡單:
1.到這裡登記帳號。
2.下載Plugin。
3.解開放到Rails Project的vender/plugin目錄下。
4.修改vender/plugin/tesly_reporter/lib/tesly_reporter.rb檔案,讓它知道這是哪個專案、哪個帳號。例如:
module TeslyReporter
class Config
cattr_accessor :app_name, :user
@@app_name = 'My Money' # provide your application name.
@@user = 'ac2fdxxxxxxx' # provide your user number.
end
end無論你有幾個Project,只要填入同一個User number都會將測試結果可以上傳到同一帳號,相當方便。
5.跑rake test。是的,沒有其他指令,就是平常常用的rake test而已。
如果設定沒錯的話,跑完rake test之後,就可以立刻進你的帳號看測試報表。
這是Project頁面,可以一目了然目前所有專案測試的狀況,例如它說我目前總共有兩個Projects、23個Test Plans、202個Test Cases。
每個專案旁邊的Status刻度代表目前的測試進度,下方則顯示失敗的Test Case。




所以rake test應該要由另一台主機定期去跑才對,每個程式員自己只要負責跑autotest就好,要是以後CruiseControl.rb可以把Tesly Jr.整合起來,在寄發通知的時候一起把相關報表寄出去,那真是太理想了。
