如何使用RSpec忽略或跳过测试方法?

时间:2014-12-04 07:49:32

标签: ruby rspec selenium-webdriver rspec2

请指导如何使用RSpec禁用以下测试方法之一。我正在使用Selenuim WebDriver + RSpec组合来运行测试。

require 'rspec'
require 'selenium-webdriver'

describe 'Automation System' do

  before(:each) do    
    ###
  end

  after(:each) do
    @driver.quit
  end

  it 'Test01' do
      #positive test case
  end

  it 'Test02' do
      #negative test case
  end    
end

6 个答案:

答案 0 :(得分:40)

您可以使用pending()或将it更改为xit或将挂起的断言包装在挂起块中以进行等待实现:

describe 'Automation System' do

  # some code here

  it 'Test01' do
     pending("is implemented but waiting")
  end

  it 'Test02' do
     # or without message
     pending
  end

  pending do
    "string".reverse.should == "gnirts"
  end

  xit 'Test03' do
     true.should be(true)
  end    
end

答案 1 :(得分:10)

跳过测试的另一种方法:

# feature test
scenario 'having js driver enabled', skip: true do
  expect(page).to have_content 'a very slow test'
end

# controller spec
it 'renders a view very slow', skip: true do
  expect(response).to be_very_slow
end

来源:rspec 3.4 documentation

答案 2 :(得分:7)

以下是从示例脚本中忽略(跳过)上述测试方法(例如,Test01)的替代解决方案。

describe 'Automation System' do

  # some code here

  it 'Test01' do
     skip "is skipped" do
     ###CODE###
     end
  end

  it 'Test02' do
     ###CODE###         
  end    
end

答案 3 :(得分:4)

有很多替代品可供选择。主要将其标记为pendingskipped,并且它们之间存在细微差别。来自文档

  

示例可以标记为已跳过,但未执行,或者执行该示例,但失败不会导致整个套件失败。

在这里引用文档:

答案 4 :(得分:2)

Pending和skip很不错,但我总是将它用于我需要忽略/跳过的更大的描述/上下文块。

describe Foo do
  describe '#bar' do
    it 'should do something' do
      ...
    end

    it 'should do something else' do
      ...
    end
  end
end if false

答案 5 :(得分:1)

在测试过程中,有两种方法可以跳过特定的代码块。

示例:使用xit代替它。

  it "redirects to the index page on success" do
    visit "/events"
  end

将上面的代码块更改为以下内容。

xit "redirects to the index page on success" do #Adding x before it will skip this test.
    visit "/event"
end

第二种方式:通过在块内调用pending。 示例:

 it "should redirects to the index page on success" do 
  pending                             #this will be skipped
    visit "/events" 
end