2012年1月12日

使用 Watchr 讓持續測試工作更容易

現代網站開發者,經常會用 SassCompass 讓 CSS Stylesheets 的設計工作更容易;或是使用 CoffeeScript 簡化 JavaScript 設計的工作。

但是瀏覽器最終需要讀取 .css 或  .js 檔案,我們使用這些指令工具進行轉換:
  • sass --watch style.scss:style.css
  • compass watch
  • coffee --watch --compile experimental.coffee
由這例子可以看到,這類工具指令內建「watch」功能,可以監視某個資料夾底下,指定的檔案類型是否「被修改」。如果檔案有修改,就會開始執行轉換輸出的工作。

很多情況我們可以應用這種 Watcher 的機制,讓磁碟檔案偵測到修改時,自動執行一段預先定義的程式,讓測試的工作更為簡便。

Watchr 是一個使用 Ruby 撰寫的工具,它可以讓你輕鬆滿足這種持續測試的需求。

Watchr: Modern continuous testing (flexible alternative to Autotest)
https://github.com/mynyml/watchr

安裝:
  1. 安裝 RubyGems 
  2. sudo gem install watchr

舉例來說,我們使用 TeX Live 的 xelatex 指令將編輯好的 .tex 原始碼轉換成 .pdf 的排版輸出。每一次修改都必須重新執行  xelatex 指令,使用 watchr 就可以自動化這項瑣碎但又必要的工作。

建立 watch-all.rb,包含以下程式碼:

watch( '.*\.tex' )  {|md| system("xelatex #{md[0]}") }

執行 watchr watch-all.rb

接下來每次修改目錄下的某個 tex 檔案,就會自動執行 xelatex 指令。


沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!