如何解决Rails 测试无法运行
我在 Rails 6.1.3.1 中遇到了一个奇怪的测试问题。我创建了一个文件,用于生成有关我的数据的各种统计信息,该文件位于 lib/modules/stats.rb
中。我在 test/modules/stats_test.rb
中添加了一个运行此测试的测试文件,并且我的覆盖率为 100%。
这些统计数据可以用在不同的地方,其中之一是在 Rake 任务中。因此,我创建了 lib/tasks/stats.rake
,如下所示:
require "#{Rails.root}/lib/modules/stats.rb"
include Stats
namespace :stats do
desc 'Print all the stats'
task :print => [:environment] do
stats = StatsMethods.generate_all_the_stats
puts stats
end
end
由于此文件的第一行存在,rake test
不再运行 test/modules/stats_test.rb
;覆盖率成比例下降。这是怎么回事?
解决方法
如下重构解决了这个问题,虽然我不知道为什么(欢迎提出建议):
namespace :stats do
desc 'Generate all the stats'
task :generate => [:environment] do
require File.join(Rails.root,'lib','modules','stats.rb')
include Stats
stats = StatsMethods.generate_all_the_stats
puts stats
end
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。