繁体   English   中英

如何找到导致瑞克测试任务终止的文件/测试?

[英]How find the file/test which is causing rake test task to terminate?

我正在使用rake任务来运行应用程序的测试套件。
我可以看到,当我启动任务时,它将运行命令

ruby -I"lib:test" -I"[...]/lib" "[...]/lib/rake/rake_test_loader.rb" "vendor/plugins/shop/test/**/*_test.rb"

其中[...]是的路径在我的宝石耙宝石。

运行任务时,我得到一些警告和一些警告. 这意味着一些测试通过了,但我最终terminated

日志示例:

...................................... 7431 Terminated

注意7431是PID。

我找不到有关这种情况的任何信息,详细或跟踪选项无法帮助我确定测试套件的损坏位置。

有谁知道我该怎么做才能解决此问题?

我不知道,什么过程创建了“终止”消息,但是您可以尝试以下操作:

添加一个

def setup
  puts "Start test #{self.__name__}"
  STDOUT.flush
end
def teardown
  puts "Finished test #{self.__name__}"
  STDOUT.flush
end

进行所有测试。

例:

require 'test/unit'

class Mytest < Test::Unit::TestCase
  def test_1
    assert_equal(1,1)
  end
  def test_2
    assert_equal(1,1)
    exit 1  ##stops the execution
  end
  def test_3
    assert_equal(1,1)
  end
end

结果是

Loaded suite test
Started
.>Exit code: 1

测试已停止,您看不到哪里。 我希望这与您的“终止”消息类似。

现在添加一些代码:

require 'test/unit'

class Mytest < Test::Unit::TestCase
  def setup
    puts "Start test #{self.__name__}"
    STDOUT.flush
  end
  def teardown
    puts "Finished test #{self.__name__}"
    STDOUT.flush
  end
  def test_1
    assert_equal(1,1)
  end
  def test_2
    assert_equal(1,1)
    exit 1  ##stops the execution
  end
  def test_3
    assert_equal(1,1)
  end
end

结果是:

Loaded suite test
Started
Start test test_1
Finished test test_1
.Start test test_2
Finished test test_2

最后提到的test_2是有问题的那个。

您也可以将setupteardown添加到每个TestCase(但是,如果您有自己的设置/拆卸定义,则它们将不包含测试代码)。

require 'test/unit'

class Test::Unit::TestCase
  def setup
    puts "Start test #{self.__name__}"
    STDOUT.flush
  end
  def teardown
    puts "Finished test #{self.__name__}"
    STDOUT.flush
  end
end

不要忘记删除代码-只是确定问题所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM