我正在使用rake任务来运行我的应用程序的测试套件 我可以看到,当我启动任务时,它运行命令
ruby -I"lib:test" -I"[...]/lib" "[...]/lib/rake/rake_test_loader.rb" "vendor/plugins/shop/test/**/*_test.rb"
其中[...]
是我的gemset中rake gem的路径。
当我运行任务时,我收到了一些警告和一些.
,这意味着一些测试通过,但我最终得到terminated
日志示例:
...................................... 7431 Terminated
请注意,7431是PID。
我找不到有关此案例的任何信息,详细或跟踪选项无法帮助我弄清楚我的测试套件在哪里坏了。
有人知道我该怎么做才能解决这个问题?
答案 0 :(得分:0)
我不知道,什么过程会创建“终止”消息,但您可以尝试以下操作:
添加
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
是有问题的那个。
您也可以将setup
和teardown
添加到每个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
不要忘记删除代码 - 只是找出问题所在。