Compartir a través de


Solución de problemas de Microsoft.Testing.Platform

Este artículo contiene instrucciones de solución de problemas para .

Códigos de salida

usa códigos de salida conocidos para comunicar errores de prueba o errores de aplicación. Los códigos de salida comienzan en y no son negativos.

Código de salida Detalles
0 El código de salida indica que se ha realizado correctamente. Todas las pruebas elegidas para ejecutarse se ejecutaron hasta la finalización y no hubo errores.
1 El código de salida indica errores desconocidos y actúa como catch all. Para buscar información adicional sobre errores y detalles, busque en la salida.
2 Se usa un código de salida de para indicar que hubo al menos un error de prueba.
3 El código de salida indica que se anuló la sesión de prueba. Se puede anular una sesión mediante CtrlC, como ejemplo.
4 El código de salida indica que la configuración de las extensiones usadas no es válida y que la sesión de pruebas no se puede ejecutar.
5 El código de salida indica que los argumentos de la línea de comandos pasados a la aplicación de prueba no eran válidos.
(ya no se usa) El código de salida ya no lo genera la plataforma; anteriormente indicó que la sesión de prueba usaba una característica no implementada.
7 El código de salida indica que una sesión de prueba no se pudo completar correctamente y probablemente se bloqueó. Es posible que esto se deba a una sesión de prueba que se ejecutó a través del punto de extensión de un controlador de pruebas.
8 El código de salida indica que la sesión de prueba ejecutó cero pruebas.
9 El código de salida indica que se infringió la directiva de ejecución mínima para las pruebas ejecutadas.
10 El código de salida indica que el adaptador de prueba, Testing.Platform Test Framework, MSTest, NUnit o xUnit, no pudo ejecutar pruebas por un motivo de infraestructura no relacionado con la propia prueba. Un ejemplo es no poder crear un fixture necesario para las pruebas.
11 El código de salida indica que el proceso de prueba se cerrará si se cierra el proceso dependiente.
12 El código de salida indica que la sesión de prueba no se pudo ejecutar porque el cliente no admite ninguna de las versiones de protocolo admitidas.
13 El código de salida indica que la sesión de prueba se detuvo debido a que se alcanzó el número especificado de pruebas con error máxima mediante la opción de línea de comandos. Para obtener más información, consulte la sección Opciones de la referencia de opciones de la CLI Microsoft.Testing.Platform.

Para habilitar el registro detallado y solucionar problemas, consulte Registro de diagnóstico.

Omitir códigos de salida específicos

está diseñado para ser estricto de forma predeterminada, pero permite la configuración. Por lo tanto, es posible para los usuarios decidir qué códigos de salida se deben omitir (se devolverá un código de salida de en lugar del código de salida original).

Para omitir códigos de salida específicos, use la opción de línea de comandos o la variable de entorno. El formato válido aceptado es una lista separada por punto y coma de códigos de salida que se omitirán (por ejemplo, ). Un escenario común es tener en cuenta que los errores de prueba no deben dar lugar a un código de salida distinto de cero (que corresponde a omitir el código de salida ).

Registro de diagnóstico

La plataforma proporciona registro de diagnóstico integrado para ayudarle a solucionar problemas de ejecución de pruebas. Puede habilitar el registro de diagnóstico mediante opciones de línea de comandos o variables de entorno.

Opciones de la línea de comandos

Las siguientes opciones de plataforma proporcionan información útil para solucionar problemas de las aplicaciones de prueba:

  • --info
  • --diagnostic
  • --diagnostic-synchronous-write
  • --diagnostic-verbosity
  • --diagnostic-file-prefix
  • --diagnostic-output-directory

Variables de entorno

También puede habilitar los registros de diagnóstico mediante las variables de entorno:

Nombre de la variable de entorno Description
TESTINGPLATFORM_DIAGNOSTIC Si se establece en , habilita el registro de diagnóstico.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY Define el nivel de verbosidad. Los valores disponibles son , , , , o .
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY Directorio de salida del registro de diagnóstico, si no se especifica que el archivo se genere en el directorio predeterminado TestResults.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX Prefijo del nombre del archivo de registro. Tiene como valor predeterminado .
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE Obliga al registrador de archivos integrado a escribir registros de forma sincrónica. Resulta útil para escenarios en los que no desea perder ninguna entrada de registro (si el proceso se bloquea). Esto ralentiza la ejecución de la prueba.

Nota:

Las variables de entorno tienen prioridad sobre los argumentos de la línea de comandos.

Resolución de errores de configuración

Microsoft.Testing.Platform.MSBuild

A continuación se muestran errores de configuración comunes relacionados con Microsoft.Testing.Platform.MSBuild.

error CS8892: No se usará el método 'TestingPlatformEntryPoint.Main(string[])' como punto de entrada porque se encontró un punto de entrada sincrónico 'Program.Main(string[])'

Definir manualmente un punto de entrada () en un proyecto de prueba o hacer referencia a un proyecto de prueba desde una aplicación que ya tiene un punto de entrada produce un conflicto con el punto de entrada generado por . Para evitar este problema, siga uno de estos pasos:

  • Quite su punto de entrada definido manualmente, que es típicamente el método en Program.cs, y permita que la plataforma de prueba genere uno automáticamente para usted.

  • Deshabilite la generación del punto de entrada estableciendo la propiedad MSBuild.

  • Deshabilite completamente la dependencia transitiva para estableciendo la propiedad MSBuild en el proyecto que hace referencia a un proyecto de prueba. Esto es necesario cuando se hace referencia a un proyecto de prueba desde un proyecto que no es de prueba, por ejemplo, una aplicación de consola que hace referencia a una aplicación de prueba.

Microsoft.Testing.Extensions.Fakes

Error de Fakes: No se pudo resolver la ruta de acceso del perfilador desde las variables de entorno COR_PROFILER_PATH y COR_PROFILER

Este error puede producirse si no todos los ensamblados de Fakes están presentes en la carpeta bin.

  • Asegúrese de que el proyecto use MSTest.SDK o haga referencia a Microsoft.Testing.Extensions.Fakes.
  • En el caso de los proyectos de .NET Framework, evite establecer <PlatformTarget>AnyCPU</PlatformTarget>, ya que esto da como resultado que NuGet no copie todos los archivos en la carpeta bin.