<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!--
    Configuracion de coverage con coverlet.collector.
    Uso: dotnet test /collect:"XPlat Code Coverage" /settings:coverlet.runsettings /results-directory:./TestResults
  -->
  <RunConfiguration>
    <!-- Mantener ejecución secuencial (hereda política de tests.runsettings) -->
    <MaxCpuCount>1</MaxCpuCount>
  </RunConfiguration>

  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="XPlat Code Coverage">
        <Configuration>
          <!-- Formato de salida: cobertura (compatible con ReportGenerator y CI/CD) -->
          <Format>cobertura</Format>

          <!-- Exclusiones por atributo generado -->
          <ExcludeByAttribute>GeneratedCodeAttribute,ExcludeFromCodeCoverageAttribute</ExcludeByAttribute>

          <!-- Exclusiones por tipo/namespace -->
          <Exclude>
            <!-- Migrations embebidas (SQL scripts, no lógica de negocio) -->
            [*.Migrations]*,
            <!-- Los proyectos de test no se miden a sí mismos -->
            [*.Tests]*,
            [SIGCM2.TestSupport]*,
            <!-- Program.cs: host wiring, no testeable unitariamente -->
            [SIGCM2.Api]Program,
            <!-- Extension methods de DI: una línea por registro, ruido sin valor -->
            [*]*.Extensions.*Extensions,
            [*]*.DependencyInjection
          </Exclude>

          <!-- No medir las propiedades auto-implementadas -->
          <SkipAutoProps>true</SkipAutoProps>

          <!-- No incluir el assembly de tests en el reporte -->
          <IncludeTestAssembly>false</IncludeTestAssembly>

          <!-- Permitir timestamps reales en el reporte (no forzar determinismo) -->
          <DeterministicReport>false</DeterministicReport>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>
