2011-10-27 4 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 

を私は.txtファイルにテストの名前を書きますRubyスクリプトを記述する必要があります。

セットアップ
test_achievements_iknow_report_page
test_achievements_daily_report_page
test_client_side_report_page


が提案を事前にいただきありがとうございますような何か。

+0

「Ruby-on-Rail」とタグ付けされているのはなぜですか? –

答えて

2

あなたはdefと一致する行を印刷するには、正規表現を使用して簡単なスクリプトを使用できます。.txtファイル

でスクリプトの結果を置くその後

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 

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と一致する被写体落下しないであろう、それはファイル内の他のクラスと一致しないであろうと継承階層を正しく読み込みます。

関連する問題