在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
RSpec 是Ruby的一个行为驱动开发(BDD)工具,当前的版本是 2.10。根据其入门文档,安装好之后,可以使用 根据文档,只要将如下代码添加到 Rakefile 中即可 require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) task :default => :spec 观察一下这段代码的内容: 首先加载了 rspec/core/rake_task 文件,该文件并不在 rspec 这个 gem 中,而是在 rspec-core 中,文件路径为 lib/rspec/core/rake_task.rb 。 然后创建了一个 def initialize(*args) @name = args.shift || :spec @pattern, @rcov_path, @rcov_opts, @ruby_opts, @rspec_opts = nil, nil, nil, nil, nil @warning, @rcov = false, false @verbose, @fail_on_error = true, true yield self if block_given? @rcov_path ||= 'rcov' @rspec_path ||= 'rspec' @pattern ||= './spec{,/*/**}/*_spec.rb' desc("Run RSpec code examples") unless ::Rake.application.last_comment task name do RakeFileUtils.send(:verbose, verbose) do if files_to_run.empty? puts "No examples matching #{pattern} could be found" else begin puts spec_command if verbose success = system(spec_command) rescue puts failure_message if failure_message end raise("#{spec_command} failed") if fail_on_error unless success end end end end 从代码中可以看出,该方法其实很简单,就是读取和设置了一系列默认属性(比如 pattern 设置为 ./spec 目录下的所有以 _spec.rb 结尾的文件),然后使用Rake中常见的 最后,使用 再来查看 desc 'Run User Rspec' RSpec::Core::RakeTask.new(:user_spec) do |t| t.pattern = './rspec/user_spec.rb' end 这样在命令行下执行 用rake执行不会读取.spec中的配置 需要在rakefile中设置 ENV['SPEC_OPTS'] ||= '' ENV['SPEC_OPTS'] += ' --format html --out spec/report/results.html'
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论