Rspec-core: ¿Es posible excluir ejemplos particulares?

Creado en 4 jun. 2016  ·  5Comentarios  ·  Fuente: rspec/rspec-core

Hola,

He estado empaquetando algunos rubygems para GNU Guix, y una cosa que me gustaría hacer ocasionalmente es deshabilitar ejemplos específicos. Supongo que es lo opuesto a la bandera rspec --example . Esto es útil cuando, por ejemplo, ciertas pruebas pueden ser fallas conocidas, porque el sistema de compilación automatizado requiere un estado de salida cero cuando se ejecuta la fase de 'verificación' (para indicar que todas las pruebas pasan).

Existen soluciones, por ejemplo, parchear los archivos de prueba, pero nos facilitaría la vida si pudiéramos pedirle a rspec que lo haga por nosotros. ¿Existe alguna forma de hacer esto o este problema es una solicitud de función?

Gracias,
ben

Comentario más útil

Creo que sería razonable agregar --exclude-example .

Todos 5 comentarios

Puede filtrar ejemplos de muchas maneras, a través de metadatos y --tag por ejemplo, https://relishapp.com/rspec/rspec-core/v/3-4/docs/command-line/tag-option , programáticamente a través de metadatos, por ejemplo, https://relishapp.com/rspec/rspec-core/v/3-4/docs/filtering/inclusion-filters y condicionalmente programáticamente a través de https://relishapp.com/rspec/rspec-core/v/3 -4 / docs / filtrar / filtros-condicionales

Quizás estoy siendo lento, pero no veo cómo pueden ayudar esos enlaces. Quizás un ejemplo podría ayudar a aclarar las cosas. Por ejemplo, si tengo esta especificación:

$ cat ~/t/a.spec
require 'rspec'

class My
  def self.answer
    4
  end
end

RSpec.describe My, "#answer" do
  context 'good and bad' do
    it 'gives the right answer' do
      expect(My.answer).to eq 4
    end
    it 'gives the wrong answer' do
      expect(My.answer).to eq -1
    end
  end
end

Entonces, ¿cómo ejecuto algo que logre lo siguiente?

$ rspec ~/t/a.spec --exclude-example wrong

Estoy buscando una forma que no implique modificar el archivo de especificaciones en sí.

Gracias.

RSpec.describe "My#answer" do
  context 'good and bad' do
    it 'gives the right answer', type: :right do
      expect(My.answer).to eq 4
    end
    it 'gives the wrong answer', type: :wrong do
      expect(My.answer).to eq -1
    end
  end
end

$ rspec ~/t/a.spec --tag @right o $ rspec ~/t/a.spec --tag ~@wrong

Agregaste type: wrong . ¿Debo deducir de su respuesta que no es posible lograr algo similar sin modificar la especificación, lo que hace que este problema sea una solicitud de función?

Creo que sería razonable agregar --exclude-example .

¿Fue útil esta página
0 / 5 - 0 calificaciones