gpt4 book ai didi

ruby - 如何为 RSpec 编写自定义 rake 任务?

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:41 24 4
gpt4 key购买 nike

在我的 Rake 文件中:

require 'rspec/core/rake_task'

desc 'Default: run specs.'
task :default => :spec

desc "Run specs"
RSpec::Core::RakeTask.new do |task|
task.pattern = "**/spec/*_spec.rb"
task.rspec_opts = Dir.glob("[0-9][0-9][0-9]_*").collect { |x| "-I#{x}" }.sort
task.rspec_opts << '-r ./rspec_config'
task.rspec_opts << '--color'
task.rspec_opts << '-f documentation'
end

在 rspec_config.rb 中

RSpec.configure {|c| c.fail_fast = true}

我的文件结构:

|-- 001_hello
| |-- hello1.rb
| `-- spec
| `-- hello_spec.rb
|-- 002_hello
| |-- hello2.rb
| `-- spec
| `-- hello_spec.rb
|-- 003_hello
| |-- hello3.rb
| `-- spec
| `-- hello_spec.rb
|-- Rakefile
`-- rspec_config.rb

当 rake 任务运行时,它会按顺序对上述文件结构进行操作。如何确保如果“001_hello”失败则不应运行“002_hello”?

目前它以相反的顺序运行,即。 “003_hello”然后是“002_hello”然后是“001_hello”。

最佳答案

您需要修改任务模式以使文件按特定顺序运行。例如:

RSpec::Core::RakeTask.new do |task|
task.pattern = Dir['[0-9][0-9][0-9]_*/spec/*_spec.rb'].sort
task.rspec_opts = Dir.glob("[0-9][0-9][0-9]_*").collect { |x| "-I#{x}" }
task.rspec_opts << '-r ./rspec_config --color -f d'
end

这将按字母顺序运行所有匹配 ###_*/spec/*_spec.rb 的文件。

关于ruby - 如何为 RSpec 编写自定义 rake 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397728/

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