繁体   English   中英

gem的开发依赖关系应否重新声明所需的运行时依赖关系?

[英]Should gem's development dependencies restate required runtime dependencies?

我找不到关于此的任何文档。 我的直觉是, add_development_dependency文件中的add_development_dependency应该仅列出开发和测试所需的其他依赖项,并且可以依赖于使用add_runtime_dependency指定的依赖add_runtime_dependency进行安装。

我惊讶地发现gem test命令仅安装开发依赖项,并且在测试期间如果需要任何运行时依赖项都会失败。

是仅是gem test怪癖,还是开发依赖项始终应重新声明所需的运行时依赖项,如下所示:

Gem::Specification.new do |s|
  # ...
  s.add_runtime_dependency 'rack'
  s.add_runtime_dependency 'net-http-persistent'
  s.add_development_dependency 'rack-test'
  s.add_development_dependency 'webmock'
  s.add_development_dependency 'rack'
  s.add_development_dependency 'net-http-persistent'
end

我认为gem test假设您已经安装了要测试的gem,然后再实际对其进行测试。

gem install whatever
gem test whatever

所有测试都表明情况是这样-他们首先调用install_stub_gem ,该安装会安装伪造的gem来运行gem test命令。

我从未见过gem可以将其所有运行时依赖项都复制为开发依赖项,而文档的语言表明这样做是没有道理的:

开发依赖

用于发展目的的宝石。 (强调我的)

因此,与运行时相关的宝石也不属于此类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM