gpt4 book ai didi

ruby-on-rails - 我的 rake 任务使用 OptionParser 来处理参数。如何从我的 minitest 测试用例中调用它?

转载 作者:行者123 更新时间:2023-12-05 07:36:42 24 4
gpt4 key购买 nike

我从命令行调用 rake 任务,如下所示;

rake add -- --num1 1 --num2 2

任务定义如下;

require 'optparse'

task :add do

options = {}
OptionParser.new do |opts|
opts.banner = "Usage: rake add [options]"
opts.on("-o", "--num1 ARG", Integer) { |x| options[:x] = x }
opts.on("-t", "--num2 ARG", Integer) { |y| options[:y] = y }
end.parse!

puts options[:x].to_i + options[:y].to_i
exit

end

如何从测试用例中调用任务。我可以用吗

Rake::Task["add"].invoke

如果是这样,如何传递参数 num1 和 num2 ?

最佳答案

我们可以 stub ARGV 常量并调用 rake 任务。为了 stub 常量,我们必须使用 gem 'minitest-stub-const' 来 stub 常量。以及测试用例的相关代码如下;

args = %W( -- --num1=1 --num2=2)
Object.stub_const(:ARGV, args) do
Rake::Task["add"].invoke
end

关于ruby-on-rails - 我的 rake 任务使用 OptionParser 来处理参数。如何从我的 minitest 测试用例中调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49044200/

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