2012-01-16 14 views
7

Tengo algunas pruebas de rendimiento C#, básicamente ejecutando dos métodos diferentes y comprobando que uno se ejecuta mucho más rápido que el otro.¿Por qué las pruebas tardan más en ejecutarse en TeamCity que cuando se ejecutan directamente en NUnit?

Cuando les ejecutan localmente en NUnit, una de las pruebas se corre diez veces más rápido que el otro, así que tengo una prueba que utiliza NUnit Stopwatch para comprobar que es al menos el doble de rápido (en el caso de regresión). Pero cuando realizo las pruebas en TeamCity, ¿el método rápido es aproximadamente 1.5 veces más rápido que el lento? Esperaría que las diferencias de hardware tuvieran algún efecto, pero no tanto. ¿Qué podría estar causando esto?

Respuesta

11

Para responder a mi propia pregunta, el problema resultó ser que la cobertura de código estaba activada para la versión de prueba en TeamCity, por lo que la sobrecarga de esto acercó los dos tiempos de ejecución del método. Esperemos que esta respuesta ayude a alguien más en el futuro.

+0

En realidad, no veo la cobertura de código activada, y todavía lleva casi una hora ejecutar mis pruebas en el servidor de compilación, mientras que demora aproximadamente 7-8 minutos a nivel local. Tiene alguna idea sobre esto? –

+0

¿Está ejecutando el mismo tipo (es decir, depurar y no liberar) en ambos? También mirando las duraciones de las pruebas en el servidor de compilación: ¿son todas más lentas por igual, o una de ellas es mucho más lenta? –

+0

¡Muchas gracias por la respuesta! Muchos de ellos son mucho más lentos, no solo uno, desafortunadamente. Están haciendo llamadas a DB, pero eso realmente no debería importar, ¿verdad? Creo que estoy ejecutando Debug en ambos. –

Cuestiones relacionadas