2012-06-01 15 views
8

Tengo un problema muy frustrante en Visual Studio. Estoy usando Resharper y estoy escribiendo pruebas en Nunit.Problema de depuración de Visual Studio con Resharper/Nunit

Si establezco un punto de interrupción, se produce un golpe, sin embargo, el paso In/Over y el Continue no funcionan, y la prueba nunca termina. Incluso si establezco dos puntos de quiebre, continuar no golpeará el segundo. Si depuro una prueba sin un punto de interrupción, termina bien.

Además, a menudo y de forma intermitente, cuando intento depurar una prueba mediante el establecimiento de un punto de ruptura, no puedo evaluar el contenido de variables, pero en lugar de ver este mensaje:

Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.

soy usando Visual Studio 2010.

Háganme saber si tiene alguna idea de qué mirar ... He recorrido la web, pero sin suerte.

Feliz de proporcionar más información si es necesario.

EDITAR - Ejemplo de método

prueba:

[Test] 
public void OneRowAddedToSourceData() { 
    //Factory just returns System.Data.DataTable with correct columns. 
    var sourceData = new DataTableContainerFactory().GetTargetTableContainer(DataTypeNames.EventSharedEnd); 

    //GetRow just returns a populated row. 
    var row = GetRow(sourceData, 123456, 123,60, 31); 

    sourceData.DataTable.Rows.Add(row); 
    Assert.AreEqual(1, sourceData.DataTable.Rows.Count); 
} 

Cuando me puse un punto de quiebre en la cuenta de Assert, y tratar de evaluar la tabla de datos consigo este problema.

¡ACTUALIZACIÓN 2! Por lo tanto, reduje este problema a la depuración de Resharper. Cambié una clase de prueba a MSTest en lugar de a NUnit, pero igual recibí los dos problemas anteriores al depurar con Resharper. Sin embargo, cuando realicé las pruebas con el corrector de pruebas integrado VS MSTest, TODOS los problemas se habían ido.

Ahora prefiero usar NUnit y Resharper, ¡así que estaría muy feliz si alguien pudiera indicarme una configuración que permita a Resharper depurar correctamente!

+0

He visto exactamente de lo que estás hablando. No es relacionado con Resharper/Nunit. Sucede cuando intentas evaluar esas variables.Lo veré cuando intento expandir un 'List <>' o algo similar ('Dictionary <,>'). Si puede evitar la evaluación que causa el mensaje, puede seguir depurando. En este momento, simplemente sé que cuando recibo el mensaje de error, dejo de depurar y reiniciar, y luego trato de no evaluar la variable que causó el problema. Me ENCANTARÍA saber cómo evitar que esto suceda. –

+0

Gracias Joel, eso es una alternativa para algunos casos, sin embargo, a menudo trato de evaluar exactamente esas variables. ¡Muy frustrante! ¡Solo espero que alguien aquí pueda ayudar! –

+0

¿Es posible que una función que esté evaluando sea un bucle continuo? ¿Puedes dar un ejemplo simple de en qué tipo de pruebas estás viendo esto? –

Respuesta

5

Tengo una posible solución, aunque con una advertencia. Hizo algunos buscando y se encontró con this blog item. Sugiere desactivar Enable property evaluation and other implicit function calls desde Tools->Options->Debugging->General. Lo apagué y ahora puedo entrar en los elementos que anteriormente causaron este problema.

La advertencia es que ahora no se muestran todas las propiedades que está acostumbrado a ver automáticamente evaluadas. En su lugar, indica Implicit function evaluation is turned off by user. Todo lo que necesita hacer es presionar el botón Actualizar en una propiedad y puede ver el valor, pero no he decidido si esto es una compensación que estoy dispuesto a hacer.

+0

Intenté esto, pero, por desgracia, cuando presiono el botón Actualizar, sigo recibiendo el error. –

+0

Voy a adivinar que mi prueba con listas simples es la razón. Mucho menos para evaluar en la actualización. Pregunta rápida: ¿Está compilando para .Net 4.0? No reproduzco mis problemas en .Net 4.0 (principalmente en .Net 3.5). Sospecho que tiene algo que ver con eso (en mi caso, al menos) –

+0

Sí, actualicé los proyectos desde 3.5 donde también ocurrió el error ... –

0

¡He encontrado la forma de resolver este problema!

Comprobar la opción de Depuración > Opciones y Configuración-> General-> propiedad Enable evaluación y otros función implícita LLAMADAS y desactive la opción llamada función de cadena de conversión de objetos en ventanas variables

Esto funcionó ¡a mi!

Cuestiones relacionadas