gpt4 book ai didi

ruby - 你如何使用 Rake::TestTask 来使用多个任务?

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:19 25 4
gpt4 key购买 nike

我正在使用 Rake 运行 Minitest,并希望有两个单独的 Rake 任务。

我添加了以下内容:

require 'rake/testtask'

task :default => [:test]
task :quick => [:unit]

Rake::TestTask.new do |t|
puts 'within test task'
t.libs.push 'specs'
t.pattern = 'specs/*_spec.rb'
ENV['STACK'] = 'stack1'
puts "test stack #{ENV['STACK']}"
end


Rake::TestTask.new('unit') do |t|
puts 'within unit task'
t.libs.push 'specs'
t.pattern = 'specs/*_unit.rb'
ENV['STACK'] = 'stack2'
puts "test stack #{ENV['STACK']}"
end

当我运行 bundle exec rake quick 时,我得到了这个输出:

within test task
test stack stack1
within unit task
test stack stack2

我没想到这两个任务都能运行。如何创建和运行两个单独的 rake 任务?就像现在一样,第二个总是覆盖环境变量。

谢谢

最佳答案

您可以像这样使用 Rake::Task["task_name"].clear 解决这个问题:

task :test_task do
Rake::TestTask.new do |t|
puts 'within test task'
t.libs.push 'specs'
t.pattern = 'specs/*_spec.rb'
ENV['STACK'] = 'stack1'
puts "test stack #{ENV['STACK']}"
end
end

task :unit_task do
Rake::TestTask.new('unit') do |t|
puts 'within unit task'
t.libs.push 'specs'
t.pattern = 'specs/*_unit.rb'
ENV['STACK'] = 'stack2'
puts "test stack #{ENV['STACK']}"
end

end

task :test do
Rake::Task["unit_task"].clear
Rake::Task["test_task"].invoke
end

task :unit do
Rake::Task["test_task"].clear
Rake::Task["unit_task"].invoke
end

关于ruby - 你如何使用 Rake::TestTask 来使用多个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986362/

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