Compartir a través de


Solucionar problemas de Test Edition

Actualización: noviembre 2007

Cuando pruebe el código, algunas condiciones pueden generar errores o advertencias, o incluso hacer que la prueba produzca un error. En este tema se describen algunas de estas situaciones y los procedimientos que puede realizar para resolverlas.

Solucionar problemas de ejecución de pruebas

Normalmente, se puede realizar un seguimiento de las condiciones que impiden que se ejecuten las pruebas hasta que produzcan un error con el fin de implementar el archivo de prueba u otros archivos necesarios para que la prueba se ejecute.

  • Pruebas remotas. Para las pruebas remotas, los problemas de comunicación con el equipo remoto pueden ser también la causa del error. Éstos y otros errores en el nivel de prueba y de ejecución se describen en Solucionar problemas de ejecución de pruebas.

  • Prueba unitarias de ASP.NET. Si la prueba unitaria de ASP.NET se ejecuta en el proceso de IIS, puede elegir que el proceso de ASP.NET se ejecute como un usuario no predeterminado, es decir, con una identidad de proceso diferente, por motivos de seguridad. En tal caso, se puede producir un error en la ejecución de la prueba. Para obtener más información, vea Información general sobre las pruebas unitarias de ASP.NET.

  • Implementar archivos junto con las pruebas. Los errores de implementación se muestran normalmente en la página Detalles de ejecución de la prueba en lugar de en la página Detalles de resultados de la prueba que ha producido el error. Por consiguiente, puede no ser evidente el motivo por el cual se ha producido un error en una determinada prueba. Para obtener más información, vea la sección "Solucionar problemas de implementación de pruebas" en Información general sobre la implementación de pruebas.

  • Solucionar problemas de pruebas Web. Al ejecutar pruebas Web se pueden producir varios errores. Estos errores pueden producirse porque falta un atributo de enlace de datos, por problemas con la configuración de seguridad o porque se ha intentado tener acceso a un sitio Web fuera del firewall. Para obtener más información, vea Solución de problemas de pruebas web.

  • Solucionar problemas de pruebas de carga. Al ejecutar pruebas de carga se pueden producir varios errores. Estos errores pueden producirse por problemas con la base de datos de pruebas de carga, por los contadores definidos en la prueba de carga, por una plataforma de pruebas configurada incorrectamente o por una de las pruebas incluidas en la prueba de carga. Para obtener más información, vea Solución de problemas de pruebas de carga.

  • Solucionar problemas de pruebas unitarias orientadas a datos. Pueden surgir problemas de conexión, autenticación, distribución o de otro tipo al ejecutar pruebas unitarias orientadas a datos. Utilice la información de Solución de problemas de pruebas unitarias orientadas a datos para resolver estos problemas.

Volver a firmar ensamblados con nombre seguro

Cuando ejecute pruebas unitarias, probará el código en un archivo binario. Puede recopilar información de cobertura de código cuando se ejecuten estas pruebas instrumentando ese archivo binario; vea Cómo: Obtener datos de cobertura de código. El proceso de instrumentación agrega código que genera información de cobertura de código en el archivo binario.

Si el archivo binario que está probando es un ensamblado con nombre seguro, la modificación del código producida por la instrumentación invalida su firma. Por tanto, Visual Studio intenta volver a firmar automáticamente el ensamblado inmediatamente después de la fase de instrumentación. Para obtener más información sobre los ensamblados con nombre seguro, vea Ensamblados con nombre seguro.

Son varias las condiciones que pueden producir un error en el proceso de volver a firmar el ensamblado. Para obtener información sobre cómo solucionar estas situaciones, vea Instrumentar y volver a firmar ensamblados.

Datos de cobertura de código y VSPerfMon.exe

Si ejecuta VSPerfMon.exe mientras ejecuta simultáneamente las pruebas para las que va a recopilar datos de cobertura de código, se producen los siguientes eventos:

  • Si ejecuta VSPerfMon con la opción TRACE o SAMPLE, se producirá un error en la ejecución de prueba que se está ejecutando simultáneamente y se notificará un error en la página Detalles de ejecución de la prueba.

  • Si ejecuta VSPerfMon.exe con la opción COVERAGE, el proceso de VSPerfMon.exe se detiene.

En ambos casos, la solución consiste en abstenerse de ejecutar simultáneamente VSPerfMon.exe y las pruebas en las que recopila datos de cobertura de código. Para obtener más información sobre la herramienta VSPerfMon.exe, vea VSPerfMon.

¿Cuándo se puede producir esta situación?

Los casos más comunes en los que se ejecuta VSPerfMon son los siguientes:

  • Es posible que haya iniciado una sesión de generación de perfiles en una instancia de Visual Studio diferente de la instancia en la que ejecuta las pruebas.

  • Está recopilando datos de cobertura de código o de generación de perfiles ejecutando directamente VSPerfMon.exe o, lo que más es común, mediante el contenedor VSPerfCmd.exe.

Los datos de cobertura de código no se muestran correctamente

Si ha solicitado que se recopilen datos de cobertura de código para las pruebas y éstos no se muestran o se muestran de una forma diferente a la prevista, esto puede deberse a algunas de las situaciones siguientes:

  • No se muestran datos de cobertura de código. Durante la ejecución de las pruebas, algunos archivos binarios, como los archivos DLL COM, se cargan desde su ubicación original y no desde el directorio de implementación de la prueba. Estos archivos binarios se deben instrumentar en contexto ya que, de lo contrario, aunque la ejecución de la prueba se realice correctamente y no se generen advertencias de nivel de ejecución, no se recopilarán datos de cobertura de código. Para obtener más información, vea Elegir la carpeta de instrumentación.

  • No se muestran datos resaltados de cobertura de código. Al ejecutar las pruebas, recopilar los datos de cobertura de código y ver los resultados de las pruebas, Visual Studio indica el código que se ha probado en la ejecución de prueba resaltándolo en el archivo de código fuente. Puede elegir los colores que indican qué código se ha analizado, cuál no se ha analizado y cuál se ha analizado parcialmente. Si no aparece parte o todo el código resaltado, asegúrese de que los colores elegidos difieren del color de fondo del archivo de código fuente. Para obtener más información sobre cómo elegir los colores para resaltar código, consulte la sección "Cambiar la presentación de la información de cobertura de código" en Cómo: Obtener datos de cobertura de código.

  • Los datos de cobertura de código no se combinan correctamente. Aunque puede combinar resultados que incluyan una o varias ejecuciones de pruebas de ASP.NET, en la ventana Resultados de la cobertura de código se muestran los datos de ASP.NET bajo Resultados combinados en nodos distintos, en lugar de en un único nodo combinado. Para obtener más información, vea Trabajar con combinación de datos de cobertura de código.

  • No se muestran todos los datos de cobertura de código combinados. Una vez combinados los datos de cobertura de código, puede exportarlos a un disco como un archivo XML. Si vuelve a importar este archivo y después lo combina con datos adicionales, no se mostrarán todas las estadísticas. Para obtener más información, vea Trabajar con combinación de datos de cobertura de código.

  • No se importan los datos de cobertura de código. Visual Studio debe poder localizar determinados archivos en el disco para importar los datos de cobertura de código. Para obtener más información, vea Trabajar con combinación de datos de cobertura de código.

  • Los archivos binarios instrumentados se sobrescriben. Está intentando recopilar datos de cobertura de código desde un programa que se está ejecutando durante una prueba manual. Si utiliza CTRL+F5 para iniciar ese programa, la acción de CTRL+F5 hace que el archivo binario del programa se vuelva a generar. Esto sobrescribe el archivo binario instrumentado y, por tanto, no se pueden recopilar datos de cobertura de código.

Para obtener información general sobre cómo recopilar datos de cobertura de código, vea Cómo: Obtener datos de cobertura de código.

Problemas de rendimiento al agregar métodos de prueba

Cuando se agrega un nuevo método de prueba, se ejecutan procesos en segundo plano para agregar este método a la ventana Vista de pruebas y al Editor de lista de pruebas, por lo que podrá verlo inmediatamente. Si tiene muchos métodos de prueba en una única clase de prueba o en todo el proyecto, podría experimentar una degradación del rendimiento producida por estos procesos automáticos al agregar un nuevo método de prueba a esta clase.

Si experimenta este problema de rendimiento, hay tres soluciones posibles:

  • Puede dividir la clase de prueba en clases parciales y dividir los métodos de prueba entre las clases parciales. De esta forma, reducirá el número de métodos de la clase de prueba y mejorará el rendimiento al agregar un método de prueba.

  • Puede crear un nuevo proyecto de prueba, mover algunas de las clases de prueba a este nuevo proyecto y, a continuación, quitarlas del proyecto de prueba original. De esta forma, reducirá el número de métodos de prueba de un ensamblado y mejorará el rendimiento.

  • Tiene la opción de desactivar el procesamiento en segundo plano que agrega los métodos de prueba a la ventana Vista de pruebas y al Editor de lista de pruebas. Con ello mejorará el rendimiento cuando se agregue un método de prueba. Sin embargo, si establece esta opción, no verá el método de prueba en la ventana Vista de pruebas ni en el Editor de lista de pruebas hasta que compile la clase que contiene el método de prueba y haga clic en Actualizar en la ventana Vista de pruebas o en el Editor de lista de pruebas.

    Nota:

    Cuando se establece esta opción, los nuevos métodos de prueba se detectan en tiempo de compilación. Esto aumentará el tiempo total de compilación de la solución.

Para deshabilitar la detección automática de métodos de prueba

  1. En el menú Herramientas, haga clic en Opciones.

    Aparecerá el cuadro de diálogo Opciones.

  2. Expanda Herramientas de prueba en el panel izquierdo y, a continuación, haga clic en Proyecto de prueba.

  3. Para deshabilitar la detección automática de métodos de prueba, seleccione Deshabilitar detección en segundo plano de métodos de prueba.

    Nota:

    Cuando se establece esta opción, cualquier método de prueba que agregue a una clase de prueba no aparecerá en la ventana Vista de pruebas ni en el Editor de lista de pruebas hasta que compile la clase que contiene el método de prueba.

Vea también

Tareas

Cómo: Combinar datos de cobertura de código

Solución de problemas de pruebas web

Solución de problemas de pruebas de carga

Conceptos

Información general sobre la implementación de pruebas

Trabajar con combinación de datos de cobertura de código

Solución de problemas de pruebas unitarias orientadas a datos

Información general sobre las pruebas unitarias de ASP.NET