XUnit - Global Exception Handler

Olá pessoALL,
Tenho trabalhado bastante com testes de integração usando o XUnit e queria deixar uma quick tip para vocês.
Após fazer o setup do Serilog + Seq para toda a infraestrutura de testes e as APIs eu tive um erro durante a execução dos testes e fui correndo para o Seq olhar os detalhes da exception e não achei nada.
O problema ocorreu durante a fase de setup dos testes e portanto além de não esperado, não havia nenhum log definido. Para não ter que ficar colocando `try/catch` pelo código, decidi fazer um handler global para as exceptions.
No ponto central dos seus testes, geralmente uma classe que implemente IClassFixture
adicione o seguinte codigo:
public AgileTestFixture()
{
Configuration = ConfigurationLoader.Instance.Value;
AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;
}
private void CurrentDomainOnFirstChanceException(object? sender, FirstChanceExceptionEventArgs e)
{
Log.Fatal(e.Exception, "Unhandled Exception");
}
Pronto! Com o FirstChanceException agora teremos todas as exceptions dos nossos testes logados automaticamente com o SeriLog.