如果通过 rake 运行,则第一个单元测试失败

发布于 2024-11-28 01:12:45 字数 870 浏览 0 评论 0原文

我的项目中有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撞了怀 2024-12-05 01:12:45

我在 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 文件中的类声明,一切都应该正常。

I checked out the source code of your app on Github.

Your test_ip.rb file defines class TestIp < Test::Unit::TestCase, as it should. However, your test_dns.rb file also defines class TestIp < Test::Unit::TestCase, whereas it should define class TestDns. Since that file also has def setup, that setup method overrides the test_ip one. This is why you see this error:

/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

So, fix the class declaration in your test_dns.rb file and everything should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文