2011-03-01 11 views
6

Tengo una aplicación Rails de complejo medio. El controlador principal (el que hace lo que la aplicación está allí para hacer) tiene un único método de acción. (No es una aplicación REST estándar, lo que está actuando como intermediario y hay restricciones externas sobre cómo se le puede llamar.)Rails 2.3.8, Ruby 1.8.6: Obtener un árbol/gráfico de llamada visual de qué métodos llaman qué?

Sin embargo, no tiene un montón de métodos y una serie de filtros, y una vez creciente suite de prueba. La estructura ha cambiado considerablemente con el tiempo, y ya no confío en que algunas de las expectativas de Mocha que se establecieron para las pruebas escritas anteriormente sigan siendo apropiadas.

Hay varias personas trabajando en la aplicación, así que estoy construyendo un libro de cocina para escribir pruebas funcionales. 'Use [estas] expectativas y afirmaciones cuando quiera probar con/sin [esos] efectos secundarios' y así sucesivamente.

Un árbol/gráfico de llamada sería extremadamente útil para componer dicho documento. Aparte de los filtros, incluso podría derivarse estáticamente de las fuentes, por algo que sabía sobre el modelo de saber-todo-sobre-todo de Rails, así que quizás la estática no sea una buena idea. :-)

He intentado usar RubyProf con mis pruebas funcionales para obtener un árbol de llamadas, pero todo lo que obtengo son árboles relacionados con los métodos de prueba y partes del kernel y Rails, y ninguno de los métodos del controlador. (Al menos no que yo he encontrado; la elaboración de perfiles crea un montón de pequeños archivos en lugar de uno grande.)

El fracaso en encontrar los métodos de controlador podría estar relacionados con la forma en que se invoca el método de acción - a través desend en lugar de algún mecanismo más 'normal'.

Blah, blah, blah .. solo FYI en lo que he intentado hasta ahora.

¿Hay una buena herramienta para crear un diagrama de flujo/árbol de llamadas who-calls-what para una aplicación Rails 2.3.8?

Gracias!

Respuesta

3

¿Has probado https://github.com/tmm1/rbtrace? No lo he probado con Rails, así que no estoy seguro de que funcione en tu caso.

+0

No, no lo he hecho, pero parece que hará lo que necesito, con algo de engatusamiento. (Lástima que aparentemente necesita 'conectarse' a un proceso y no puede encapsular una ejecución, tal vez en el futuro ...) ¡Gracias! – RoUS

+0

No veo cómo obtener un árbol/gráfico de llamada visual. –

Cuestiones relacionadas