2011-10-27 53 views
1


我有這個單元測試文件:如何使用類中的方法名稱生成文件?

class WebsiteCheckPageElements < Test::Unit::TestCase 

def setup 
... 
end 

def test_achievements_iknow_report_page 
    ... 
end 

def test_achievements_daily_report_page 
    ... 
end 

def test_client_side_report_page 
    ... 
end 
end 

我需要寫一個Ruby腳本,將寫測試的名稱爲.txt文件。喜歡的東西

設置
test_achievements_iknow_report_page
test_achievements_daily_report_page
test_client_side_report_page

預先感謝您的建議。

+0

爲什麼標記爲「ruby-on-rails」? –

回答

2

你可以使用使用正則表達式一個簡單的腳本打印匹配def該行:

match_test_methods.rb

File.open('your_unit_test_file.rb').each_line do |line| 
    match = line.match(/def (.+)/) 
    puts match[1] if match 
end 

然後把結果腳本的.txt文件

ruby match_test_methods.rb > test_methods.txt 
+0

太棒了!完美的作品!謝謝,亞歷克斯! – Yulia

3

比其他答案更可靠:

File.open("test_methods.txt", "w") do |f| 
    WebsiteCheckPageElements.instance_methods.each do |method| 
    f << "#{method}\n" 
    end 
end 

這將實際使用Ruby運行時和在它不限定的方法(如在字符串內)的地方偶然匹配def不會下降主題,也不會在文件中匹配其他類和它會正確讀取繼承層次結構。

相關問題