web-dev-qa-db-fra.com

Comment ignorer ou ignorer une méthode de test à l'aide de RSpec?

veuillez indiquer comment désactiver l'une des méthodes de test ci-dessous à l'aide de RSpec. J'utilise des combinaisons Selenuim WebDriver + RSpec pour exécuter des tests.

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
28
Prashanth Sams

Vous pouvez utiliser pending() ou remplacer it par xit ou encapsuler l'assertion dans le bloc en attente pour l'implémentation d'attente:

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
41
Зелёный

Une autre façon de sauter les tests:

# 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

source: documentation rspec 3.4

10

Voici une solution alternative pour ignorer (ignorer) la méthode de test ci-dessus (disons, Test01) à partir d'un exemple de script.

describe 'Automation System' do

  # some code here

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

  it 'Test02' do
     ###CODE###         
  end    
end
7
Prashanth Sams

Il existe un certain nombre d'alternatives pour cela. Le marquant principalement comme pending ou skipped et il y a une différence subtile entre eux. À partir des documents

Un exemple peut être marqué comme ignoré, dans lequel il n'est pas exécuté, ou en attente dans lequel il est exécuté, mais l'échec n'entraînera pas une défaillance de l'ensemble de la suite.

Consultez les documents ici:

4
tejasbubane

En attente et ignorer sont agréables, mais j'ai toujours utilisé cela pour des blocs de description/contexte plus importants que je devais ignorer/ignorer.

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

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

Il existe deux façons d'éviter qu'un bloc de code spécifique ne soit exécuté pendant le test.

Exemple: utiliser xit à la place de celui-ci.

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

Remplacez le bloc de code ci-dessus par ci-dessous.

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

Deuxième façon: en appelant en attente à l'intérieur du bloc. Exemple:

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