如何使用类中的方法名称生成文件?
我有这个unit testing文件:
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
提前感谢您的建议。
您可以使用一个使用正则表达式打印匹配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
比其他答案更健壮的方式:
File.open("test_methods.txt", "w") do |f| WebsiteCheckPageElements.instance_methods.each do |method| f << "#{method}\n" end end
这实际上将使用Ruby运行时,并且不会在未定义方法的地方(例如在String内)意外匹配def
,它将不匹配文件中的其他类,并且它将正确读取inheritance层次结构。
- 我应该在HABTM表中包含其他字段吗?
- rails server(4.0.0)无法启动 – 错误:LoadError:8 lib / mysql2.rb:8:in`require’:libmysqlclient.so.18
- 有没有办法逃脱Nokogiri css中的非字母数字字符?
- 数组的attr_accessor?
- 代码块中的Markdown换行符
- 机械化Ruby 1.9.3编码问题
- 打开终端时正确的Ruby版本
- Rails:如何以百分比forms打印小数?
- 在rails 5中ActiveSupport :: MessageVerifier :: InvalidSignature:ActiveSupport :: MessageVerifier :: InvalidSignature错误
- 如何在Rails中更改“3个错误禁止此foobar被保存”validation消息?
- 是否可以使用Nokogiri :: XML :: Builder 从XML文档中省略处理指令