答案 0 :(得分:5)
gem的spec/
目录在解压缩时超过99MB。你绝对应该将它从最终的宝石中排除(即使很小)。它之所以如此庞大,是因为它包含了仍然存在log/
(80MB)和tmp/
(18MB)目录的虚拟应用程序。
排除文件的方式是files
中的gemspec
变量。该变量包含将放入构建gem中的每个文件的数组。
Gem::Specification.new do |gem|
gem.files = `git ls-files`.split($/).reject { |fn| fn.start_with? "spec" }
...
end
代码将首先获取目录中每个文件的列表(git ls-files
它还将应用.gitignore
中的规则),然后删除路径以spec
开头的所有文件
是否要将测试包含在最终的gem中,取决于您。问题是没有一种简单的方法来运行测试。曾经有一个选项(-t
)可以通过Rubygems直接执行,但该选项已经被删除了很久。鉴于这种情况,我认为将测试保存在存储库中可能是最好的。
请注意,您可能还会在test_files
中看到名为gemspec
的变量。该变量已弃用且不执行任何操作。