#ruby
#ruby
Вопрос:
Я пытаюсь протестировать простой локальный драгоценный камень, над которым я работаю, но я получаю сообщение об ошибке при локальном тестировании драгоценного камня. Я установил путь к локальному gem в Gemfile моего проекта.
Gemfile
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rake"
gem "valet-tasks", path: "../../Gems/valet-tasks"
Rakefile
require 'valet-tasks'
Это ошибка, которую я получаю:
rake -T --trace
rake aborted!
LoadError: cannot load such file -- valet-tasks
/Users/myuser/Sites/mysite/Rakefile:2:in `<top (required)>'
Вот как выглядит мой драгоценный камень valet-tasks:
Gemfile
# frozen_string_literal: true
source "https://rubygems.org"
# Specify your gem's dependencies in valet-tasks.gemspec
gemspec
gem "rake", "~> 13.0"
lib/valet-tasks.rb
# frozen_string_literal: true
require 'rake'
require 'rake/tasklib'
require_relative "valet-tasks/version"
require_relative 'valet-tasks/hello'
module ValetTasks
class Error < StandardError; end
# Your code goes here...
end
lib/valet-tasks/hello.rb
module ValetTasks
module Task
include Rake::DSL if defined? Rake::DSL
class Hello < ::Rake::TaskLib
def initialize
super
namespace :hello do
desc 'Prints hello'
task :one do
puts 'Testing one two three'
end
end
end
end
end
end
ValetTasks::Task::Hello.new
Я чувствую, что все настроено правильно. Может ли быть так, что это невозможно внутри файла Rakefile?
Ответ №1:
Похоже, вам не хватает bundle exec
bundle exec rake -T
Комментарии:
1. Спасибо, что сработало. Как только я установлю Gem без использования удаленного пути, смогу ли я вызвать команду без
bundle exec
?2. Нет, вам все равно понадобится
bundle exec
. В качестве альтернативы, вы могли бы добавитьrequire 'bundler/setup'
в свойRakefile
.