2012-08-02 54 views
1

出于某种原因,未显示单元测试失败的行号。 Rails 3中的新功能?我不确定。这使得很难知道测试失败的地方。知道哪一行导致错误的唯一方法是在测试代码的任何地方放置调试语句。显示Rails测试失败的行号

输出示例如下。这个例子显示了很多有用的信息。例如错误消息:参数的错误数量(o代表2)。不幸的是,它不显示单元测试代码行的行号。是否有可能获得行号?

ActionController::TestCase 
ActionDispatch::IntegrationTest 
ActiveRecord::TestCase 
ActiveSupport::TestCase 
DefineIssueTest 
    test_Get_issues              ERROR 
     wrong number of arguments (0 for 2) 
     STDERR: 
     Exception `ArgumentError' at c:/Ruby19/lib/ruby/gems/1.9.1/gems/activesu 
pport-3.1.4/lib/active_support/testing/setup_and_teardown.rb:35:in `block in run 
' 
     c:/Ruby19/lib/ruby/gems/1.9.1/gems/activesupport-3.1.4/lib/active_suppor 
t/callbacks.rb:408:in `_run_setup_callbacks' 
     c:/Ruby19/lib/ruby/gems/1.9.1/gems/activesupport-3.1.4/lib/active_suppor 
t/callbacks.rb:81:in `run_callbacks' 
     c:/Ruby19/lib/ruby/gems/1.9.1/gems/activesupport-3.1.4/lib/active_suppor 
t/testing/setup_and_teardown.rb:34:in `run' 
Test::Unit::TestCase 
============================================================================== 
    pass: 0, fail: 0, error: 1 
    total: 1 tests with 20 assertions in 0.935994 seconds 
============================================================================== 
Errors running test:single! 
+0

目前我正在添加跟踪语句以确定最后成功执行的测试代码行。我必须做错什么? Rails必须有更好的方式来做到这一点? – onknows 2012-08-02 11:49:53

+0

该错误似乎源于active_support/testing中的“setup_and_teardown”方法。你有没有用于测试的设置代码,可能会失败? – Frost 2012-08-02 12:56:23

回答

0

我最近有这个问题;事实证明,我已经编写了一个在测试套件中失败的测试。 (最小密码长度:8个字符,然后以6个字符为例设置一个例子)让我永远找出问题所在,因为错误信息是不合理的。