Quiero poder ejecutar las pruebas de un solo archivo de especificaciones, por ejemplo, para el único archivo que estoy editando. rake spec
ejecuta todas las especificaciones. Mi proyecto no es un proyecto Rails, por lo rake spec:doc
que no funciona.
No sé si esto importa, pero aquí está mi estructura de directorios.
./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./Especificaciones ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
La invocación en bruto:
Ahora descubra cómo incrustar esto en su editor.
fuente
Esta pregunta es antigua, pero aparece en la parte superior de Google cuando se busca cómo ejecutar una sola prueba. No sé si es una adición reciente, pero para ejecutar una sola prueba fuera de una especificación, puede hacer lo siguiente:
donde -número de línea- es un número de línea que contiene parte de su prueba. Por ejemplo, si tuviera una especificación como:
Digamos que está guardado en spec / models / foo_spec.rb. Entonces correrás:
y solo ejecutaría esa especificación. De hecho, ese número podría ser de 2 a 5.
¡Espero que esto ayude!
fuente
require
tu otro archivo de especificaciones?rspec spec/models/foo_spec.rb:2:12:49
También puede usar el texto real del caso de prueba * e * xample con
-e
!Entonces para:
puedes usar
No hay necesidad de rastrillo aquí.
fuente
de ayuda (spec -h):
Ejemplo: spec spec / runner_spec.rb -l 162
fuente
:
según la documentación y una respuesta popular.Si instaló rspec como un complemento en lugar de como una gema, entonces no tendrá el
spec
ejecutable.En cualquier caso, todo lo que necesita hacer es ejecutar el archivo con ruby. El código rspec es lo suficientemente inteligente como para ejecutar las pruebas por usted.
p.ej:
fuente
http://github.com/grosser/single_test te permite hacer cosas como ...
fuente
Ruby 1.9.2 y Rails 3 tienen una manera fácil de ejecutar un archivo de especificaciones:
Explicación:
ruby
el comando tiende a ser más rápido que elrake
comando-I spec
significa "incluir el directorio 'spec' cuando busque archivos"spec/models/user_spec.rb
es el archivo que queremos ejecutar.fuente
Para ejecutar todos sus archivos rspec:
rspec
nota: debes estar en la raíz de tu proyecto
Para ejecutar un archivo rspec:
rspec 'path_to/spec.rb'
nota: reemplace 'path_to / spec.rb' con su ruta. Comillas opcionales.
Para ejecutar una prueba rspec desde un archivo:
rspec 'path_to/spec.rb:7'
nota:: 7 es el número de línea donde comienza la prueba
fuente
Estaba teniendo problemas para que alguno de estos ejemplos funcione, ¿tal vez porque la publicación es antigua y los comandos han cambiado?
Después de hurgar un poco, encontré que esto funciona:
rspec spec / models / user_spec.rb
Eso ejecutará solo el archivo único y proporciona resultados útiles en el terminal.
fuente
specky.vim
fuente
Alternativamente, eche un vistazo a la prueba automática.
La ejecución de la prueba automática en una ventana de comandos significará que el archivo de especificaciones se ejecutará cada vez que lo guarde. Además, se ejecutará siempre que se ejecute el archivo que está especificando.
Por ejemplo, si tiene un archivo de especificación de modelo llamado person_spec.rb, y un archivo de modelo que especifica se llama person.rb, cada vez que guarde cualquiera de estos archivos desde su editor, el archivo de especificación se ejecutará.
fuente
Aunque se escribieron muchas respuestas excelentes a esta pregunta, ninguna de ellas utiliza el enfoque Rspec
tags
.Utilizo etiquetas para ejecutar una o más especificaciones en diferentes archivos, solo aquellas relacionadas con mi tarea de desarrollo actual.
Por ejemplo, agrego la etiqueta "dev" con el valor "actual":
entonces corro
Se pueden establecer diferentes etiquetas / valores en especificaciones individuales o grupos.
fuente
Digamos que estás ejecutando una prueba para crear todo. Siempre puede ejecutar ese código de especificación de tarea específica utilizando el archivo crete_spec.rb como se muestra a continuación.
Si desea ejecutar todas las especificaciones en un solo corto.
Si desea ejecutar todas las especificaciones en un usuario controlador específico esto.
¡Espero que te dé más comprensión!
fuente