XUnit - BeforeAfterTestAttribute

XUnit - BeforeAfterTestAttribute

Ola pessoALL,

Continuando do ultimo post, além de um exception handler global nos testes, também queria logar o inicio e fim de cada teste, para facilitar a pesquisa dos logs.
Segue um atributo simples para ser aplicado na nossa classe base de testes.

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public class SerilogBeforeAfterTestAttribute : BeforeAfterTestAttribute
    {
        public override void Before(MethodInfo methodUnderTest)
        {
            Log.Information($"Starting testing: {methodUnderTest.Name}");
        }

        public override void After(MethodInfo methodUnderTest)
        {
            Log.Information($"Done testing: {methodUnderTest.Name}");
        }
    }

O atributo pode ser aplicado em qualquer classe ou teste individualmente, no meu caso estou aplicando na minha classe base de testes.

[SerilogBeforeAfterTest]
    public abstract class ManagementTestController : IClassFixture<ManagementTestFixture>, IAsyncLifetime
    {
    }

Com essa configuração temos um resultado parecido com o da imagem a seguir: