/ / NUnit prueba de unidad o corredor separado en TeamCity - c #, unit-testing, nunit, teamcity

NUnit prueba de unidad o corredor separado en TeamCity - c #, unit-testing, nunit, teamcity

Pregunta:

¿Puedo usar un corredor de prueba de unidad separado para el subgrupo de pruebas de unidad en mi compilación? Todos los que necesitarían un proceso de corredor separado están contenidos dentro de .dll único

¿O al menos es posible especificar el orden de las pruebas unitarias?

Fondo:

Tengo algunas pruebas unitarias que están probandoIntegración con componentes nativos que ensucia la memoria del proceso y, por lo tanto, en el código de producción, reciclo mi proceso después de usarlos. (Es la integración de Python para .net y algunos paquetes no están diseñados para la descarga y recarga del motor Python). Sin embargo, las pruebas unitarias solo están aisladas por los dominios de la aplicación, por lo que aún permanecen en el mismo proceso y pueden colidarse.

Respuestas

1 para la respuesta № 1

Puede usar el atributo NUnit [Categoría de prueba] para crear un grupo de prueba diferente. Después de la agrupación, solo puede ejecutar un grupo específico desde el servidor de TeamCity. También podrías dividirlo en diferentes pasos.

Pero también como variante, podría usar los atributos [OneTimeSetUp] y [OneTimeTearDown].

Enlaces útiles:

  1. https://msdn.microsoft.com/en-us/library/dd286683.aspx - Descripción del atributo TestCategory.
  2. http://nunit.org/docs/2.5/consoleCommandLine.html - cómo puede ejecutar sus categorías de prueba desde nunit-console.
  3. https://confluence.jetbrains.com/display/TCD9/Getting+Started+with+NUnit#GettingStartedwithNUnit-Case1.CommandLine - Cómo puedes usar nunit-console dentro de team city.

Segundo enfoque:

  1. https://github.com/nunit/docs/wiki/OneTimeSetUp-Attribute
  2. https://github.com/nunit/docs/wiki/OneTimeTearDown-Attribute

0 para la respuesta № 2

Resulta que TeamCity admite la separación de ensamblajes de prueba por procesos de corredor de prueba individuales - opción llamada "Ejecutar proceso por ensamblaje" en la configuración del paso de compilación de NUnit:

Proceso de ejecución por ensamblaje

Más detalles aquí: https://confluence.jetbrains.com/display/TCD10/NUnit (Buscar "Ejecutar proceso por ensamblaje")