Testes arquiteturais — SGApi
Projeto tests/SGApi.ArchitectureTests usando ArchUnitNET + xUnit.
Objetivo
Garantir convenções do monólito modular antes dos testes de integração (sem Docker, ~segundos).
Executar
dotnet test tests/SGApi.ArchitectureTests -c Debug
# ou
.\scripts\test.ps1 -Target architecture
Rodar sempre em
-c Debug— ArchUnitNET analisa IL dos binários de produção.
Regras implementadas
| Classe | Fase | Regra |
|---|---|---|
NamespaceConventionTests | 1 | Root SGApi.*; proibido WSLinear.* |
NamingConventionTests | 1 | *Controller, I*Service |
LayerDependencyTests | 1 | Entities sem ASP.NET; DTOs sem EF; Services sem Controllers |
FeatureIsolationTests | 2 | Cross-feature só via baseline (ADR 002) |
VerticalSliceTests | 3 | Pastas Controllers/ e Services/ |
TestProjectDependencyTests | 1 | UnitTests sem Controllers |
SgApiArchitecturePolicyTests | 4 | Política consolidada para CI |
Nova dependência entre features
- Verificar falha em
FeatureIsolationTests - Adicionar par em
LegacyCrossFeatureBaseline.cs - Documentar em
docs/adr/002-cross-feature-dependencies.md
Referências
- NetArchTest — alternativa mais simples
- ArchUnitNET docs