我试图使用一个标准的Ruby文件布局。我有一些Spec文件,并试图使用Minitest来运行这些测试。我明白,当需要文件时,我不应该使用'lib‘,因为当使用'-I’提供Ruby库路径时,通常可以附加‘lib’。在运行spec文件时,我会得到一些最小的统一错误。
initialize': uninitialized constant Minitest::Parallel::Executor::Queue (NameError) from /Users/rag/.rvm/gems/ruby-2.1.5/gems/minitest-5.8.1/lib/minitest.rb:23:innew‘from /Users/rag/.rvm/gems/ruby-2.1.5/gems/minitest-5.8.1/lib/minitest.rb:23:in <module:Minitest>' from /Users/rag/.rvm/gems/ruby-2.1.5/gems/minitest-5.8.1/lib/minitest.rb:9:in来自/Users/rag/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in require' from /Users/rag/.rvm/rubies/ruby-2.1.5/lib/ruby/site\_ruby/2.1.0/rubygems/core\_ext/kernel\_require.rb:54:in要求‘/Users/rag/.rvm/gems/ruby-2.1.5/gems/minitest-5.8.1/lib/minitest/autorun.rb:8:in <top (required)>' from /Users/rag/.rvm/rubies/ruby-2.1.5/lib/ruby/site\_ruby/2.1.0/rubygems/core\_ext/kernel\_require.rb:54:inrequire’from /Users/rag/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in require' from tests/test\_jthread.rb:1:in‘规范文件:
cat tests/test_jthread.rb
require 'minitest/autorun'
require 'thread.rb'
describe JThread do目录结构:
lib/thread.rb
bin/
tests/test_jthread.rb
Gemfile
jta.gemspec*来自bundle的宝石列表:
$ bundle list
Gems included by the bundle:
* ansi (1.5.0)
* builder (3.2.2)
* bundler (1.10.6)
* minitest (5.8.1)
* minitest-reporters (1.1.4)
* ruby-progressbar (1.7.5)rakefile
require 'rake/testtask'
Rake::TestTask.new do |task|
task.libs << %w(tests lib)
task.pattern = 'tests/test_*.rb'
end
desc "Run tests"
task :default => :test发布于 2015-10-24 19:30:25
如果您有一个类JThread,它应该位于lib/j_thread.rb中,也可以将require 'thread.rb'修复为require 'j_thread' (不需要.rb后缀)。
如果您的rake任务不起作用,请尝试通过运行您的测试的老式方法来检查它:
ruby -Ilib:test tests/test_*.rbhttps://stackoverflow.com/questions/33322246
复制相似问题