Asp.net Core - Registrando Controllers de um Assembly externo

Olá pessoALL,
Uma dica simples, mas que pode ser útil. Estou desenvolvendo o material para o meu workshop de testes e me deparei com uma situação:
Criei alguns controllers com rotas que só devem existir durante a execução dos testes e queria que os mesmos ficassem em um projeto separado.

O código do controller é bem simples:
[AllowAnonymous]
[Route("api/test/ping")]
public class TestPingController : ControllerBase
{
[HttpGet]
public ActionResult Pong()
{
return Ok("pong");
}
}
Para registrar o controller no Startup.cs:
public Startup(IConfiguration configuration, IWebHostEnvironment environment)
{
Configuration = configuration;
HostEnvironment = environment;
}
public IConfiguration Configuration { get; }
public IWebHostEnvironment HostEnvironment { get; }
private bool IsTest => Configuration.GetValue("IsTest", false);
public void ConfigureServices(IServiceCollection services)
{
var mvcBuilder = services.AddMvc(o =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
o.Filters.Add(new AuthorizeFilter(policy));
}).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
if (IsTest)
{
var assembly = typeof(TestPingController).Assembly;
mvcBuilder.PartManager.ApplicationParts.Add(new AssemblyPart(assembly));
}
}
Pronto! Com isso podemos usar controllers de outros projetos e registra-los baseado em configuração.
Espero que essa dica seja útil para vocês.
[]s e até a próxima.