如何使用多组数据运行规范?

时间:2018-03-15 20:15:54

标签: ruby rspec data-driven-tests

我正在使用Ruby,RSpec,Watir等。我是新手。我需要使用不同的数据集运行规范。我以前在Selenium中读取excel表中的数据或通过xml传递数据。我怎么在这里做?

1 个答案:

答案 0 :(得分:0)

您仍然可以从excel或xml中读取数据并将其保存为spec文件中的实例变量。

使用nokogiri gem:

require 'nokogiri'

RSpec.describe 'Your Feature' do
  context 'Using dataset 1', :dataset1 do
    let :data do
      File.open('dataset1.xml') { |f| Nokogiri::XML(f) }
    end

    it 'test with dataset 1' do
      # describe your test here
      puts data  # data returns a Nokogiri::XML::Document object
    end
  end

  context 'Using dataset 2', :dataset2 do
    let :data do
      File.open('dataset2.xml') { |f| Nokogiri::XML(f) }
    end

    it 'test with dataset 2' do
      # describe your test here
      puts data  # data returns a Nokogiri::XML::Document object
    end
  end
end

您可以使用Nokogiri::XML::Documentdata查询解析存储在CSS变量中的XPath。详细了解nokogiri api here