En este momento, si ejecuto mi conjunto de pruebas con rake spec
, obtengo un error:
1) SegmentsController GET 'index' debería funcionar Fallo / Error: obtener 'índice' método indefinido `locale 'para # # ./spec/controllers/segments_controller_spec.rb:14: en 'bloque (3 niveles) en'
Esto es normal ya que tengo un error :)
El problema es que la traza no es muy útil. Sé que entró segments_controller_spec.rb
, línea 14, pero aquí es donde llamo a la prueba:
### segments_controller_spec.rb:14
get 'index'
Preferiría tener el salto de línea real y el seguimiento completo, no la parte en la carpeta de especificaciones.
Correr con --trace
no ayuda.
Respuestas:
Debes ejecutar rspec con la
-b
opción de ver trazos completosfuente
Otra alternativa (más fácil) es editar el
.rspec
archivo y agregar labacktrace
opción. Debería verse algo así:Eso le dará el rastreo completo. Espero que esto ayude.
fuente
color
. Creo que si lo deletreascolour
podría aparecer una broma de Monty PythonEsto también funcionará:
fuente
Otro enfoque consiste en borrar todos los patrones de exclusión de rastreo hacia atrás en
spec_helper.rb
. Me gusta más esta solución, ya que puedo mantener todas las configuraciones de RSpec en un solo lugar y deshacerme.rspec file
o explícitamente--backtrace
en.travis.yml
.fuente
No sé cómo hacer que aparezca el error del controlador en rspec. A veces aparece, pero no sé qué condiciones hacen que aparezca. Sin embargo, aquí hay una forma de ver el error con bastante rapidez:
Abra otra sesión de terminal y ejecute:
Luego regrese a la sesión de terminal y ejecute solo la especificación que tuvo el error:
Regrese al final del registro y debería ver el error, con suerte sin demasiadas cosas que lo rodean (porque ejecutó la prueba fallida por sí sola).
fuente
Una opción más cuando todo lo demás falla es simplemente agregar un bloque de rescate e imprimir el intento de pila o agregar una declaración de palanca vinculante allí y usar
show-stack
.fuente
begin
y elrescue
bloque como la declaración externa del método de acción del controlador. O usarrescue_from
.git diff
antes de cometerlo, te salvará el tocino.