如果通过 rake 运行,则第一个单元测试失败
我的项目中有 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
列表中的第一个测试时,总是失败 。
有错误。
test_ip.rb:55: warning: instance variable @ip not initialized
这意味着,在第一次测试中不执行设置方法。
当我直接运行测试时。
ruby test_ip.rb
测试成功。
我尝试将第一个测试重命名为 test_zip.rb,当我通过 rake 运行测试时,测试成功,但列表中的第一个测试 test_dns.rb 失败。
谁知道怎么解决?
谢谢。
I have Rakefile in my project.
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
When I run tests
rake test_vendor
First test in the list, always fail.
With error.
test_ip.rb:55: warning: instance variable @ip not initialized
That is mean, not execute setup method in first test.
When I run test directly.
ruby test_ip.rb
Test is successful.
I tried rename first test to test_zip.rb, and when I running test through rake, test is successful, but first in the list test test_dns.rb is failed.
Who know how fix it?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在 Github 上查看了你的应用程序的源代码。
您的
test_ip.rb
文件定义了class TestIp
Test::Unit::TestCase
,正如它应该的那样。但是,您的test_dns.rb
文件还定义了class TestIp
Test::Unit::TestCase
,而它应该定义class TestDns
。由于该文件还具有def setup
,因此该设置方法会覆盖test_ip
方法。这就是您看到此错误的原因:因此,修复
test_dns.rb
文件中的类声明,一切都应该正常。I checked out the source code of your app on Github.
Your
test_ip.rb
file definesclass TestIp < Test::Unit::TestCase
, as it should. However, yourtest_dns.rb
file also definesclass TestIp < Test::Unit::TestCase
, whereas it should defineclass TestDns
. Since that file also hasdef setup
, that setup method overrides thetest_ip
one. This is why you see this error:So, fix the class declaration in your
test_dns.rb
file and everything should work.