Pregunta

He creado un proyecto WCF usando el modelo IIS.Luego creé las pruebas unitarias que hace referencia a los servicios de ese proyecto.Ahora, cuando comience la prueba de la unidad, el servicio no está alojado y, por lo tanto, obtengo endpointNotFoundExceptions.Cuando simplemente golpee F5, todo funciona bien y el IIS Express sale en la bandeja.

Revisé la opción "Siempre inicie cuando se depura" en el panel de propiedad del proyecto de servicio y se establece en true.

¿Fue útil?

Solución

Una prueba de unidad es una prueba de unidad.Si necesita otro proceso para él (a saber, algunos IIS u otro servidor web) ya no es una unidad cerrada.Si desea probar su servicio cuando está alojado, le sugeriría que le aloje en su prueba usted mismo.Revise los servicios de auto-alojamiento.Luego, tiene control sobre qué clase está alojada cuando y dónde.Por ejemplo, es posible que desee una URL diferente para su prueba de unidad y puede inyectar una capa de datos diferente para que sus pruebas no necesiten nada fuera de su unidad, como una base de datos.

Otros consejos

No está realizando pruebas de la unidad, y en realidad está realizando pruebas de integración, ya que su demanda de prueba no tiene conocimiento / vinculación directo de los códigos de servicio y es solo un programa cliente del servicio.

Las pruebas de la unidad y las pruebas de integración contribuyen a un buen control de calidad. En general, debe crear pruebas de unidad que prueben directamente los códigos de servicio a través de las interfaces de enlace del proceso, y asegúrese de que tenga una cobertura de código integral.

Luego, cree pruebas de integración utilizando MS Test, NUNIT o XUNIT como aprovechamiento de la prueba, para probar algunos comportamientos de tiempo de ejecución del servicio.

Qué rompecabezas es que cómo hacer la demanda de prueba en el mismo VS SLN funcione mientras el servicio debe ejecutarse en modo de depuración. Podría haber algunas soluciones:

  1. Construye el traje de prueba usando NUNIT o XUNIT, luego ejecute el traje de prueba fuera de VS IDE, que está ejecutando el servicio en modo de depuración. En realidad, la prueba de MS también podría soportar, pero solo en el modo de línea de comandos.

  2. Hoste el servicio en IIS, y tiene un archivo por lotes para copiar ensamblajes y web.config a allí en cada actualización. Luego adjunte los códigos de servicio con la instancia respectiva w3wp.exe.

  3. Si solo desea probar en lugar de depurar, podría haber otra solución: use IIS Express. Usted usa los códigos C # o el archivo por lotes para iniciar IIS Express con el servicio durante el desgarro, y cierre IIS Express al desgarrar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top