我的项目中有Rakefile。
mt_server_dir = File.expand_path('vendor/murder_traffic_server')
Rake::TestTask.new("test_vendor") do |t|
chdir mt_server_dir
t.libs = [mt_server_dir]
t.test_files = Dir["#{mt_server_dir}/tests/test_*"]
t.warning = true
end
当我运行测试时
rake test_vendor
列表中的首次测试,始终为fail。
有错误。
test_ip.rb:55: warning: instance variable @ip not initialized
这意味着,不是在第一次测试中执行设置方法。
当我直接进行测试时。
ruby test_ip.rb
测试成功。
我尝试将第一个测试重命名为test_zip.rb,当我通过rake运行测试时,测试成功,但是在列表测试中首先测试test_dns.rb失败。
谁知道如何解决它?
感谢。
答案 0 :(得分:2)
我在Github上查看了你的应用程序的源代码。
您的test_ip.rb
文件定义了class TestIp < Test::Unit::TestCase
。但是,您的test_dns.rb
文件也定义了class TestIp < Test::Unit::TestCase
,而它应该定义class TestDns
。由于该文件也有def setup
,因此该设置方法会覆盖test_ip
。这就是您看到此错误的原因:
/home/dylan/dev/Murder-traffic/vendor/murder_traffic_server/tests/test_dns.rb:7: warning: method redefined; discarding old setup
/home/dylan/dev/Murder-traffic/vendor/murder_traffic_server/tests/test_ip.rb:7: warning: previous definition of setup was here
因此,修复test_dns.rb
文件中的类声明,一切都应该有效。