Хотя ваш подход кажется утомительным, я считаю, что он лучший.
Я имел обыкновение хранить все свои конфигурации в одном файле web.config, и просто закомментировал раздел «production».
Вскоре после этого мне пришлось провести «гибридный» тест, в котором мои поисковые данные приходили с рабочего сервера, но новые данные вставлялись в тестовую базу данных. В этот момент мне пришлось начать по частям, какие части конфигурационного блока комментировать / раскомментировать, и это стало кошмаром.
Аналогичным образом, наши администраторы серверов осуществляют фактический переход от тестирования к производству, и большинство из них недостаточно свободно владеют .NET, чтобы знать, как управлять файлами web.config. Им гораздо проще просто просмотреть файл .test или .prod и перенести нужный файл вверх.
Вы можете использовать что-то вроде базы данных для хранения всех ваших конфигураций, но затем вы переходите на другой уровень абстракции, и вам нужно управлять этим в дополнение ко всему.
Как только вы получите умение или шаблон того, как будут настроены ваши два (или три) файла конфигурации, вам станет намного легче управлять ими, и вы сможете изменить конфигурацию вашего тестового сервера для какого-то уникального тестирования без особых хлопот .