Sul mio posto di lavoro abbiamo molti ambienti di test da gestire e generalmente eseguiamo uno stack .NET per i siti web. Al momento utilizziamo Octopus Deploy che, per ciascun ambiente, configurerà le applicazioni in fase di distribuzione. Le nostre app sono costruite e impacchettate con variabili sostituibili che Octopus riempie di distribuzione.
Anche se non si utilizza uno strumento del genere, raccomanderei la configurazione al momento dell'implementazione. La tua applicazione che impacchetta (nel tuo strumento CI preferito) per la distribuzione dovrebbe essere lo stesso pacchetto ripetibile che va in dev, test e prod. Utilizziamo Team City che crea i nostri pacchetti di distribuzione e un altro strumento che è un repository di pacchetti per memorizzare tutti gli artefatti di build.
Avere percorsi di codice che sono speciali per un ambiente potenzialmente rende i test più difficili dal momento che l'applicazione si comporta in modo diverso.