gpt4 book ai didi

ruby - `bundle exec rake` 还是 `rake`? `Rake::TestTask` 呢?

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:42 24 4
gpt4 key购买 nike

我觉得调用 bundle exec rakebundle exec make 很奇怪:为什么不呢

bundle exec bundle exec rake

然后呢?

虽然我应该能够从 Rakefile(或 Makefile)中要求和使用 Bundler。但是,我找不到如何使用正确的 gem 组运行测试,以下方法不起作用:

# Rakefile
require 'rake/testtask'

Rake::TestTask.new do |t|
require 'bundler'
Bundler.setup(:default, :test) # this has no effect
t.test_files = FileList['test.rb']
end

有人可以帮我正确设置 Rake 测试任务,或者解释一下使用 bundle exec rake 的哲学原因吗?

请注意,bundle exec rake 需要将 gem rake 添加到 Gemfile。

最佳答案

bundle exec 的全部目的是在项目的 Gemfile 上下文中运行以下内容。

如果没有它,对 rake 的调用可能会使用系统范围内安装的 rake 和/或 gem。这不允许对每个项目中使用的每个 gem 的版本进行细粒度控制。当您开发(或在生产环境中服务)使用相同 gem 的不同版本的多个 ruby​​ 项目时,这变得尤为重要。

Bundler 允许您的项目自包含,无需对系统可用依赖项进行任何假设。

话虽如此,您可以创建一个 shell 别名,在您想要的前缀前加上 bundle exec。例如,我的 zsh 配置(启用了 bundle 插件)为我提供了 bundle execbe 简写。

关于ruby - `bundle exec rake` 还是 `rake`? `Rake::TestTask` 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23486763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com