如何在设置或拆卸回调中获取正在运行的测试的名称?

时间:2011-01-19 11:05:15

标签: ruby-on-rails unit-testing

我想在测试中添加性能警告,如下所示:

# in test_helper.rb
class ActiveSupport::TestCase
  def record_test_start_time
    @test_start_time = Time.now
  end
  setup :record_test_start_time

  def warn_long_running_test
    running_time = Time.now - @test_start_time
    if running_time > 10.seconds
      puts "WARNING: Test #{test_name} ran for #{running_time}"
    end
  end
  setup :record_test_start_time
end

如何将测试名称输入test_name变量?我过去使用来自setup / teardown回调的Kernel#caller的结果很差。

2 个答案:

答案 0 :(得分:3)

目前,方法是method_name

答案 1 :(得分:1)

名称方法为您提供字符串“方法名称(类名)”,我认为@method_name为您提供当前测试的名称。