我正在學習用PHP單元測試和我下面就tutsplus的TDD會議:http://net.tutsplus.com/sessions/test-driven-php/測試的文件更新所有子類
我已成立了一個紅寶石watchr腳本來運行PHPUnit的單元測試每個文件的修改時間使用Susan Buck的腳本:https://gist.github.com/susanBuck/4335092
我想更改ruby腳本,以便除了在更新文件時測試文件以外,還會測試從文件繼承的所有文件。我的名字我的文件,表示繼承(和組文件)作爲家長 .PHP,Parent.Child .PHP和Parent.Child.GrandChild .PHP,等於是watchr腳本可以只按名稱搜索。我只是不知道該怎麼做。
我想改變:
watch("Classes/(.*).php") do |match|
run_test %{Tests/#{match[1]}_test.php}
end
喜歡的東西:
watch("Classes/(.*).php") do |match|
files = get all classes that inherit from {match[1]} /\b{match[1]}\.(.*)\.php/i
files.each do |file|
run_test %{Tests/{file}_test.php}
end
end
我該怎麼做目錄中的文件名搜索?或者,有沒有更簡單/更好的方法來實現這一目標?
感謝
編輯
這是我結束了:
watch("#{Library}/(.*/)?(.*).php") do |match|
file_moded(match[1], match[2])
end
def file_moded(path, file)
subclasses = Dir["#{Library}/#{path}#{file}*.php"]
p subclasses
subclasses.each do |file|
test_file = Tests + file.tap{|s| s.slice!(".php")}.tap{|s| s.slice!("#{Library}")} + TestFileEnd
run_test test_file
end
end
圖書館在哪裏,測試和TestFileEnd是在文件的頂部定義的值。它也進行了更改,以便它可以檢測應用程序庫的子文件夾中的更改並加載相應的測試文件。
感謝您的幫助。它讓我到我需要去的地方:) – baiano 2013-05-01 17:30:14