with tutorial tests test run rails how example effective better ruby testing rspec

ruby - tutorial - ¿Cómo se ejecuta un solo archivo de prueba/especificaciones en RSpec?



rspec test example (14)

Quiero poder ejecutar las pruebas de un solo archivo de especificaciones, por ejemplo, para el archivo que estoy editando. rake spec ejecuta todas las especificaciones. Mi proyecto no es un proyecto de Rails, por lo que la rake spec:doc 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 ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb


¿Estaba teniendo problemas para que alguno de estos ejemplos funcionara, 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 único archivo y proporciona una salida útil en el terminal.


Alternativamente, echa un vistazo a autotest.

Ejecutar el autotest en una ventana de comando 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 especificaciones modelo llamado person_spec.rb, y un archivo modelo que está especificando llamado person.rb, entonces cada vez que guarde cualquiera de estos archivos desde su editor, se ejecutará el archivo de especificaciones.


Aunque se escribieron muchas respuestas geniales a esta pregunta, ninguna de ellas utiliza el enfoque de tags Rspec .

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":

it "creates an user", dev: :current do user = create(:user) expect(user.persisted?).to be_truthy end

entonces corro

bundle exec rspec . --tag dev:current

Diferentes etiquetas / valores se pueden establecer en especificaciones individuales o grupos.


Digamos que estás ejecutando prueba para crear todo. Siempre puede ejecutar ese código específico de especificación de tareas utilizando el archivo crete_spec.rb como se muestra a continuación.

rspec/spec/features/controller/spec_file_name.rb Example: Creating rspec spec/features/todos/create_spec.rb Editing rspec spec/features/todos/edit_spec.rb Deleting rspec spec/features/todos/destroy_spec.rb

Si desea ejecutar todas las especificaciones en un solo corto.

rspec

Si desea ejecutar todas las especificaciones en un controlador específico, haga esto.

rspec/spec/feaures/controller_name Example: rspec/spec/features/todos

Espero que te da más comprensión!


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 de una especificación, puede hacer lo siguiente:

rspec path/to/spec:<line number>

donde -línea número- es un número de línea que contiene parte de su prueba. Por ejemplo, si tienes una especificación como:

1: 2: it "should be awesome" do 3: foo = 3 4: foo.should eq(3) 5: end 6:

Digamos que está guardado en spec / models / foo_spec.rb. Entonces correrías:

rspec spec/models/foo_spec.rb:2

y simplemente ejecutaría esa especificación. De hecho, ese número podría ser de 2 a 5.

¡Espero que esto ayude!


La invocación en bruto:

rake spec SPEC=spec/controllers/sessions_controller_spec.rb / SPEC_OPTS="-e /"should log in with cookie/""

Ahora averigüe cómo incrustar esto en su editor.


O puede omitir rastrillo y usar el comando ''rspec'':

rspec path/to/spec/file.rb

En su caso, creo que siempre que su archivo ./spec/db_spec.rb incluya los ayudantes adecuados, debería funcionar bien.

Si está utilizando una versión anterior de rspec es:

spec path/to/spec/file.rb


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. Las comillas son opcionales.

Para ejecutar una prueba de rspec desde un archivo: rspec ''path_to/spec.rb:7''

nota:: 7 es el número de línea donde comienza la prueba


Ruby 1.9.2 y Rails 3 tienen una manera fácil de ejecutar un archivo de especificaciones:

ruby -I spec spec/models/user_spec.rb

Explicación:

  • ruby comando ruby tiende a ser más rápido que el comando rake
  • -I spec significa "incluir el directorio ''spec'' al buscar archivos"
  • spec/models/user_spec.rb es el archivo que queremos ejecutar.

Si instaló rspec como un complemento en lugar de como una gema, entonces no tendrá el ejecutable de spec .

En cualquier caso, todo lo que necesitas hacer es ejecutar el archivo usando ruby. El código rspec es lo suficientemente inteligente como para ejecutar las pruebas por usted.

p.ej:

ruby myclass_spec.rb


También puede utilizar el texto real del caso de prueba * e * xample con -e !

Así que para

it "shows the plane arrival time"

puedes usar

rspec path/to/spec/file.rb -e ''shows the plane arrival time'' ./scripts/spec path/to/spec/file.rb -e ''shows the plane arrival time''

No hay necesidad de rastrillar aquí.


de ayuda (espec. -h):

-l, --line LINE_NUMBER Execute example group or example at given line. (does not work for dynamically generated examples)

Ejemplo: spec spec / runner_spec.rb -l 162


specky.vim


http://github.com/grosser/single_test te permite hacer cosas como ...

rake spec:user #run spec/model/user_spec.rb (searches for user*_spec.rb) rake test:users_c #run test/functional/users_controller_test.rb rake spec:user:token #run the first spec in user_spec.rb that matches /token/ rake test:user:token #run all tests in user_test.rb that match /token/ rake test:last rake spec:last