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

Pra*_*ams 28 ruby rspec rspec2 selenium-webdriver

请指导如何使用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
Run Code Online (Sandbox Code Playgroud)

Зел*_*ный 43

您可以使用pending()或更改itxit或包裹断言在等待执行挂起的块:

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
Run Code Online (Sandbox Code Playgroud)


Mug*_*ica 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
Run Code Online (Sandbox Code Playgroud)

来源:rspec 3.4文档


Pra*_*ams 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
Run Code Online (Sandbox Code Playgroud)


小智 6

挂起和跳过很好,但我总是将它用于我需要忽略/跳过的较大的描述/上下文块。

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

    it 'should do something else' do
      ...
    end
  end
end if false
Run Code Online (Sandbox Code Playgroud)


tej*_*ane 5

有许多替代方法。主要将其标记为pendingor,skipped并且它们之间存在细微的差异。来自文档

一个示例可以标记为已跳过(不执行),也可以标记为已执行(未决),但是失败不会导致整个套件的失败。

在这里参考文档: