7

¿Hay alguna solución a la lentitud de la primera prueba NUnit cuando se utiliza Entity Framework 4.1?NUnit primero prueba muy lento con Entity Framework en el corredor de prueba Resharper

estoy encontrando que tarda unos 10 segundos para la primera prueba, el resto de mis pruebas se ejecutan en 0,01 segundos (según la opción Show Time ReSharper a)

Si corro las pruebas usando la interfaz gráfica de usuario NUnit, de nuevo primera prueba tarda 10 segundos, pero si volver a ejecutar todo el conjunto de pruebas se ejecuta en menos de 0,5 segundos ... hasta que volver a compilar la solución

también tengo un NUnit pruebas de una El servicio WCF alojado en IIS, que llama a EF, y el primero termina en aproximadamente 3 segundos. Luego, si vuelvo a ejecutar las pruebas, es hasta 1 segundo y, como era de esperar, al volver a compilar, la primera vez vuelve a 3 segundos.

Pero las pruebas originales NUnit, que están en contra de una biblioteca de clases con métodos llamando EF, están siempre alrededor de la segunda marca de 10, es decir, hay una disminución en el tiempo

Ok, entiendo que IIS está haciendo "algo "[¿qué?], pero en ambos casos estoy usando NUnit para hacer las llamadas ... ¿por qué hay un intervalo de más de 10 segundos para la primera llamada, el otro es de 3 segundos y luego de 1 segundo en las llamadas posteriores?

Y para realmente confundirme, escribí una aplicación de consola simple que llama a uno de los métodos de EF utilizando en la clase que se está probando, y se las arregla para completar en 1 segundo.

ACTUALIZACIÓN ... las mismas pruebas reescritas como pruebas MSTest terminar la primera prueba en unos 3,5 segundos, lo que es comparable a la de la primera prueba en el corredor NUnit interfaz gráfica de usuario, por lo que el problema parece ser la ReSharper corrector de prueba para NUnit en Visual Studio

ACTUALIZACIÓN 2 ... sí, el problema parece ser el corredor de prueba Resharper. TestDriven.NET y Visual Nunit 2010 son más rápidos.

ACTUALIZACIÓN 3 ... y ahora está conectado con JetBrains como un problema

Respuesta

2

Eso es un comportamiento común, porque la primera prueba tendrá que compilar "puntos de vista" EF - esto sucede primera vez que utilice cualquier cosa asignada en tu modelo Las mismas vistas compiladas se almacenan en caché y se vuelven a utilizar. Se puede evitar, pero requiere que genere manualmente el código para las vistas (by using EdmGen.exe), agregue ese código a su proyecto y compile junto con su solución. Tendrá que hacer esto cada vez que cambie algo en EDMX, a menos que lo haga como una acción previa a la construcción en su proyecto (a su vez, ralentizará su construcción).

+0

Debo estar haciendo algo mal ... intenté el proceso descrito en su enlace, pero aún la primera prueba de NUnit demora más de 10 segundos. Lo que me confunde aún más es que probé una aplicación de consola que llama al mismo código y tarda aproximadamente un segundo ... ¿por qué/qué está haciendo NUnit? – SteveC

+0

En caso de duda, golpee el monitor de proceso sobre él. –

+0

Slap Process Monitor ¿en qué? ... NUnit? – SteveC

1

La diferencia entre los distintos corredores puede deberse a la plataforma (x64 vs. x86) que están utilizando. EF es mucho más lento para comenzar en modo x64.

Cuestiones relacionadas