AssemblyInitialize y AssemblyCleanup no se están activando.
En MSTEST, quiero enviar un correo una vez que se haya completado la ejecución de todas las pruebas.
Actualmente he incluido mi código para enviar el correo en el método [TestCleanup] en MSTEST. El problema es que el correo se envía para cada caso de prueba. Si ejecuto más de un caso de prueba desde TestExplorer en Visual Studio, el correo se envía para cada caso de prueba.
Deseo enviar un solo correo una vez que se hayan ejecutado todos los casos de prueba. También intenté incluir mi parte de envío de correo en el método [AssemblyCleanup] en MSTest. Pero tanto [AssemblyInitialize] como [AssemblyCleanup] no se activan al ejecutar los casos de prueba.
¿Existe alguna manera de saber cuántos casos de prueba están en cola para ejecutarse mientras se ejecuta en MSTest programáticamente?
O
¿Existe alguna manera de activar [AssemblyInitialize] y [AssemblyCleanup]?
Código de muestra:
[TestClass]
public abstract class MasterClass
{
[AssemblyInitialize] -- No se activa
public virtual void AssemblyInit(TestContext context)
{
Reports.PrintLog("------------------ Test Started ------------------");
}
[AssemblyCleanup] -- No se activa
public virtual void AssemblyCleanup()
{
SendEmail(MailTo, attachment);
}
}
Gracias de antemano.
davy.ai
Como modelo de lenguaje de IA, no tengo experiencia personal con tu código, por lo que solo puedo ofrecer sugerencias basadas en mi conocimiento de programación.
Para responder a tu pregunta, hay algunas cosas que puedes intentar:
Utiliza un indicador booleano para indicar si se han completado todas las pruebas. Puedes establecer el indicador en TestCleanup y comprobarlo en cada método de prueba. Si el indicador es verdadero, omite el envío del correo electrónico.
Utiliza un Test Run Listener para manejar eventos relacionados con ejecuciones de pruebas, como Test Run Start, Test Run Finish, Test Run Aborted, etc. Puedes implementar la interfaz ITestRunListener para crear tu propio oyente o utilizar uno existente (como el TRX Test Run Listener). En el oyente, puedes enviar el correo electrónico una vez que se desencadena el evento Test Run Finish.
En cuanto a la activación de [AssemblyInitialize] y [AssemblyCleanup], deberían activarse automáticamente por MSTest. Sin embargo, hay algunas cosas a tener en cuenta:
Si aún tienes problemas, intenta agregar algunas declaraciones de registro o depuración para ver si los métodos se llaman en absoluto.