Tengo una especificación de prueba que es describes
una clase y dentro de ella tiene varios, contexts
cada uno con varios it
bloques.
¿Hay alguna forma de desactivar context
temporalmente?
Intenté agregar una pending "temporarily disabled"
llamada en la parte superior dentro de un context
que quiero deshabilitar, y vi algo sobre pendiente cuando ejecuté la especificación, pero luego continuó ejecutando el resto de las pruebas.
Esto es lo que tuve:
describe Something
context "some tests" do
it "should blah" do
true
end
end
context "some other tests" do
pending "temporarily disabled"
it "should do something destructive" do
blah
end
end
end
pero como dije, simplemente pasó a ejecutar las pruebas debajo de la llamada pendiente.
La búsqueda me llevó a este hilo de la lista de correo en el que el creador (?) De rspec dice que es posible en rspec 2, que estoy ejecutando. Supongo que funcionó, pero no tuvo el efecto deseado de deshabilitar todas las siguientes pruebas, que es lo que pienso cuando veo una pending
llamada.
¿Existe una alternativa o lo estoy haciendo mal?
describe 'XXXXX' do .... end
describe 'XXXXX' do
. Funcionó como un encanto, gracias @Pyro!Utilice filtros de exclusión . Desde esa página: En su
spec_helper.rb
(orails_helper.rb
)En tu prueba:
Cuando ejecuto "rspec ./spec/sample_spec.rb --format doc"
Entonces la salida debe contener "grupo 2 ejemplo 1"
Y la salida no debe contener "grupo 1 ejemplo 1"
Y la salida no debe contener "grupo 1 ejemplo 2"
fuente
Mira lo que piensas de esto:
Me gusta ver los motivos de mis elementos pendientes cuando desactivo algo durante "un tiempo". Sirven como pequeños comentarios / tareas pendientes que se presentan con regularidad en lugar de enterrarse en un comentario o un ejemplo / archivo excluido.
Cambiar
it
apending
oxit
es rápido y fácil, pero prefiero la construcción hash. Le brinda la documentación de cada ejecución, es un complemento (no cambia describe / context / it, así que tengo que decidir qué usar nuevamente más adelante), y se elimina con la misma facilidad si se toma la decisión o se elimina el bloqueador .Esto funciona igual para grupos y ejemplos individuales.
fuente
pending:
yskip:
, en rspec 3.6.0. Me parece la mejor solución. en rspec3 pendiente todavía ejecuta pruebas, peroskip
no (sin embargo, aplicaskip
).otro. https://gist.github.com/1300152
use xdescribe, xcontext, xit para deshabilitarlo.
Actualizar:
Desde rspec 2.11, incluye xit por defecto. entonces el nuevo código será
Uso
fuente
Utilice pendiente en lugar de describir. Si tu bloque es:
Puede omitir todo el bloque de la siguiente manera:
fuente
fuente
Solo para explicar lo que está sucediendo con su código. Incluyéndolo donde lo tiene, simplemente se evalúa (y por lo tanto se ejecuta) cuando el archivo se carga durante el inicio. Sin embargo, es necesario que se ejecute cuando se ejecuten las pruebas. Es por eso que las respuestas han sugerido poner
pending
(RSpec 2) oskip
(RSpec 3) en unbefore
bloque.fuente