2014-12-04 2 views
22

, пожалуйста, расскажите, как отключить один из нижеперечисленных методов тестирования с помощью RSpec. Я использую комбинации Selenuim WebDriver + RSpec для запуска тестов.Как игнорировать или пропускать метод тестирования с помощью 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 

ответ

35

Вы можете использовать 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 
+0

Спасибо .. Это работает! –

6

Вот альтернативное решение игнорировать (пропустить) вышеупомянутый метод испытания (скажем, Test01) из пример скрипт.

describe 'Automation System' do 

    # some code here 

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

    it 'Test02' do 
    ###CODE###   
    end  
end 
+0

Мне это нравится. Семантически «пропустить» «xit» и «pending» - разные вещи – MegaTux

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 

Второй способ: путем вызова в ожидании внутри блока. Пример:

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

Есть целый ряд альтернатив для этого. В основном это обозначается как pending или skipped, и между ними существует тонкая разница. В документах

Пример может быть отмечен как пропущенный, в котором он не выполнен, или в ожидании, в котором он выполняется, но сбой не приведет к сбою всего пакета.

Refere Документах здесь:

7

Другой способ пропустить тесты:

# 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

В ожидании и пропуске хороши, но я всегда использовал это для более крупных блоков описания/контекста, которые мне нужно было игнорировать/пропускать.

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

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