ruby – 如何为RSpec编写自定义rake任务?
发布时间:2020-12-17 03:27:59 所属栏目:百科 来源:网络整理
导读:在我的Rake文件中: require 'rspec/core/rake_task'desc 'Default: run specs.'task :default = :specdesc "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
在我的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任务运行时,它将按顺序对上述文件结构进行操作. 目前它以相反的顺序运行,即. ‘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匹配的所有文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |