2015-10-24 43 views
0

我想使用標準的Ruby文件佈局。我有幾個Spec文件,並試圖使用Minitest來運行這些測試。我明白,當需要文件時,我不應該使用'lib',因爲在使用'-I'給出Ruby庫路徑時通常會附加這些文件。運行spec文件時,我會遇到一些最小的常量單元化錯誤。無法獲取庫路徑與微型

  1. 有人可以解釋爲什麼我會得到這個錯誤?
  2. 我該怎麼做才能解決這個錯誤?
  3. rakefile看起來不錯嗎?

    /Users/rag/.rvm/gems/ruby-2.1.5/gems/minitest-5.8.1/lib/minitest/parallel.rb:19:in `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:in `new' 
        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 `<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: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 `require' 
        from /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: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 `require' 
        from tests/test_jthread.rb:1:in `<main>' 
    

spec文件:

cat tests/test_jthread.rb 
require 'minitest/autorun' 
require 'thread.rb' 

describe JThread do 

目錄結構:

$ 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) 

rakefil:從包

lib/thread.rb 
bin/ 
tests/test_jthread.rb 
Gemfile 
jta.gemspec* 

寶石列表Ë

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 

回答

1

如果你有一個類JThread,它應位於lib/j_thread.rb,還修復require 'thread.rb'require 'j_thread'(無.rb後綴需要)。

如果你的rake任務不起作用,嘗試通過運行測試老式的方法來檢查:

ruby -Ilib:test tests/test_*.rb 
+0

謝謝您的回答。 1.其中是需要JThread類在文件j_thread.rb中的命名約定。我無法從'http:// ruby​​-doc.org/core-2.2.3/Kernel.html#method-i-require'中找到。 2.即使文件名是問題,拋出的錯誤也沒有提供有關問題的線索。 3.這是'task.pattern ='tests/**/test _ *。rb'' rake testtask中的正確模式,用於在測試中的任何目錄級別下運行所有​​測試文件? – Rag