鑑於我有一個外部文件來控制哪些規格正在運行。運行由輸入文件定義的多個規格
control.xls
test_id|description|file_path |run
1 |Test 1 |./spec/test1_spec.rb|yes
2 |Test 2 |./spec/test2_spec.rb|no
我有一個讀取文件並返回一個file_paths數組的方法。
我想使用該文件陣列來運行規範,它可以通過耙或命令行。
這甚至可能嗎?
鑑於我有一個外部文件來控制哪些規格正在運行。運行由輸入文件定義的多個規格
control.xls
test_id|description|file_path |run
1 |Test 1 |./spec/test1_spec.rb|yes
2 |Test 2 |./spec/test2_spec.rb|no
我有一個讀取文件並返回一個file_paths數組的方法。
我想使用該文件陣列來運行規範,它可以通過耙或命令行。
這甚至可能嗎?
這是可能的。你可以簡單地寫一個自定義的rake任務,其中包含讀取你的文件的代碼。然後,您可以調用RSpec的Rake任務爲每個文件(RSpec::Core::RakeTask)的,像這樣(的結構,這是未經測試的代碼!):
require 'rake/testtask'
namespace :test do
task :spec do
test_files = ...
test_files.each do |test_file|
RSpec::Core::RakeTask.new do |task|
task.rspec_opts = test_file
end
end
end
發現在另一個地方在計算器上:Whats is the replacement for spec_files in RSpec::Core::RakeTask ? Does pattern accept array of files?
因此,它接受一個文件數組,我使用FileList傳遞文件,只運行最後一個規範。
感謝您的輸入Martin
感謝您的回答,我明白您的解釋,但尚未運作。 – Vinchbr 2013-03-25 18:50:15