尝试在Windows上执行“ rails test”时遇到问题。
问题:
17: from test/controllers/users_controller_test.rb:1:in `<main>'
16: from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
15: from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
14: from C:/Users/ES0074223/RubyOnRails/firefly/test/test_helper.rb:5:in `<top (required)>'
13: from C:/Users/ES0074223/RubyOnRails/firefly/test/test_helper.rb:6:in `<class:TestCase>'
12: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/test_case.rb:82:in `parallelize'
11: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/test_case.rb:82:in `new'
10: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/testing/parallelization.rb:54:in `initialize'
9: from C:/Ruby25-x64/lib/ruby/2.5.0/drb/drb.rb:1710:in `start_service'
8: from C:/Ruby25-x64/lib/ruby/2.5.0/drb/drb.rb:1710:in `new'
7: from C:/Ruby25-x64/lib/ruby/2.5.0/drb/drb.rb:1404:in `initialize'
6: from C:/Ruby25-x64/lib/ruby/2.5.0/drb/drb.rb:772:in `open_server'
5: from C:/Ruby25-x64/lib/ruby/2.5.0/drb/drb.rb:804:in `auto_load'
4: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/dependencies.rb:297:in `require'
3: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/dependencies.rb:263:in `load_dependency'
2: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/dependencies.rb:297:in `block in require'
1: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-6.0.0.beta1/lib/active_support/dependencies.rb:297:in `require'
C:/Ruby25-x64/lib/ruby/2.5.0/drb/unix.rb:6:in `<top (required)>': UNIXServer is required (LoadError)
非常感谢您的帮助。
答案 0 :(得分:0)
可能与Rails Issue #34410 Windows support for parallelization and instrumenter
有关今天(2019年11月底)仍然存在问题
$ rails test
Traceback (most recent call last):
28: from bin/rails:9:in `<main>'
...
8: from C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/testing/parallelization.rb:58:in `initialize'
7: from C:/Ruby26-x64/lib/ruby/2.6.0/drb/drb.rb:1715:in `start_service'
6: from C:/Ruby26-x64/lib/ruby/2.6.0/drb/drb.rb:1715:in `new'
5: from C:/Ruby26-x64/lib/ruby/2.6.0/drb/drb.rb:1403:in `initialize'
4: from C:/Ruby26-x64/lib/ruby/2.6.0/drb/drb.rb:772:in `open_server'
3: from C:/Ruby26-x64/lib/ruby/2.6.0/drb/drb.rb:804:in `auto_load'
2: from C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/zeitwerk-2.2.1/lib/zeitwerk/kernel.rb:23:in `require'
1: from C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/zeitwerk-2.2.1/lib/zeitwerk/kernel.rb:23:in `require'
C:/Ruby26-x64/lib/ruby/2.6.0/drb/unix.rb:6:in `<top (required)>': UNIXServer is required (LoadError)
错误消息的重要部分来自 testing / parallelization.rb 。
在test / test_helper.rb中:添加“带有线程”:
parallelize(workers: :number_of_processors, with: :threads)
但是,仅此一项并不能解决问题。我也有 在Gemfile中将sass-rails升级到版本6(我之前有5):
gem 'sass-rails', '>= 6'
并进行捆绑更新。
为什么涉及到无礼是个谜。
答案 1 :(得分:0)
从this article看来,此问题似乎来自使用Unix套接字的应用程序,Windows不支持该套接字。
我强烈建议您在Docker中运行该应用程序。这将解决您的问题,但是-当然-不是本机Windows体验。