9

Es genial que con Resharper 6 se puedan escribir pruebas de qunit y ejecutarlas con el rastreador de prueba de resharper integrado. Sin embargo, me pregunto si es posible establecer puntos de interrupción en las pruebas y el código bajo prueba. El problema es que, cada vez que abre el navegador, utiliza un número de puerto aleatorio diferente, lo que significa que no puede simplemente establecer puntos de interrupción en el navegador y volver a ejecutar las pruebas presionando F5. Entonces me pregunto, ¿es posible de alguna manera?¿Cómo puedo establecer puntos de interrupción en mis pruebas de qunit cuando uso el rastreador de prueba Resharper?

+0

Consulte mi respuesta a continuación sobre el uso de la declaración del depurador con Firefox + Firebug. –

Respuesta

5

Lamentablemente, no es posible en este momento - ver this request. Lo que sugiero que hagas ahora mismo si necesitas depuración es usar QUnit canónicamente: crea una página HTML, suelta tus libs de JS, prueba y QUnit en ellas, y pon los elementos HTML de QUnit para mostrar los resultados. De esta forma, podrá establecer puntos de interrupción en JS.

+0

Ah, yo no encontré este problema yo mismo. Sin embargo, lo voté ahora que sé que existe. – Christoph

10

Un enfoque más fácil usando Resharper y Visual studio.

Sólo hay que poner como su primera línea en el archivo JS:

QUnit.moduleDone = function() {}

La prueba ReSharper no va a terminar y se puede actualizar la página en el navegador tantas veces usted quiere. Puede poner un punto de interrupción y luego volver a ejecutar la prueba presionando F5 en el navegador.

Ejemplo:

En la parte superior de la página debe tener:

  • sus primeras referencias
  • QUnit.moduleDone = function() {};

este modo:!

/// <reference path="Scripts/jquery-ver**.min.js"/> 
/// <reference path="Scripts/jquery-ui.min.js"/> 
/// <reference path="your_test_file.js"/> 

QUnit.moduleDone = function() {}; 

Esto funciona perfectamente)

En su navegador - simplemente pulse F12 (ventana del depurador abierto), establecer los puntos de interrupción y actualizar la página con F5))

+1

¡Esta es una gran solución! Sin embargo, no sé cómo matar el servidor ... – Igal

+1

puede matar el servidor haciendo clic en "detener la ejecución" (el icono de la señal de stop), luego "detener la ejecución" (el icono de la mano roja). –

+0

Gracias, he creado algo similar para mis pruebas escritas con jasmine jasmine.currentEnv_.currentRunner_.finishCallback = function() {}; –

1

Si está utilizando Firefox con el plugin Firebug, puede hacer lo siguiente: agregar una declaración depurador a su código donde desea romper:

var x = 2; 
debugger; 
... 

Establezca la opción Firebug 'Activo para todas las páginas web' en verdadero. En las opciones de ReSharper, Pruebas> JavaScript establece Firefox como el navegador que se usará (si no es el predeterminado).

Ahora el depurador Firebug se romperá en la declaración del depurador.

PD He intentado esto con Chrome pero no pude conseguir que se rompa. ¿Alguien sabe cómo hacerlo?

+2

Lo mismo funciona en Chrome si tiene las herramientas de desarrollo ya abiertas. Si las herramientas de desarrollo aún no están abiertas, no se detendrá cuando llegue a 'depurador'. – elwyn

+0

¡Gracias por el consejo! –

Cuestiones relacionadas