Где ApplicationSettingsBase сохраняет файлы конфигурации во время модульного тестирования?
Немного фонового контекста: я наследую от ApplicationSettingsBase для сохранения пользовательских наборов параметров конфигурации в моем приложении, и ручное тестирование работает нормально, наборы настроек сохраняются без проблем.
Я также хотел провести модульное тестирование моей функциональности ConfigSettings, чтобы убедиться, что десериализация и сохранение нескольких наборов настроек (с использованием различных ключей настройки) работают. Мой выборочный модуль для тестирования - NUnit.
Мой метод TextFixtureSetUp выглядит так:
var configSettingsTest = new ConfigSettings("TestSettings");
configSettingsTest.Name = "TestName";
// ...lots of other initializations...
// Serialize the data
configSettingsTest.Save();
В моем реальном приложении, похоже, настройки конфигурации сохраняются в
"<user>\AppData\Local\<myApplication>\<crazyHashKey>"
Но я не могу найти, где настройки сохраняются в моих модульных тестах. Я имею в виду, что тесты проходят успешно, поэтому десериализация работает (предположительно), но я понятия не имею, куда именно они записываются на диск, а класс ApplicationSettingsBase, похоже, не имеет никакого способа указать Сохранить путь.
У кого-нибудь есть идеи?
Мэтт Шуберт
ОБНОВИТЬ
Я узнал, что происходит. Я использовал Resharper для запуска своих тестов NUnit из Visual Studio, и Resharper создает свой собственный изолированный AppDomain. Таким образом, ConfigSettings были сохранены в
"<user>\AppData\Local\JetBrains\<crazyHashKey>"
(JetBrains является компанией, стоящей за Resharper)
Я проверил это, используя мой скрипт сборки из командной строки, и обнаружил, что NUnit делает нечто подобное, поэтому ConfigSettings были теперь в
"<user>\AppData\Local\NUnit.org\<crazyHashKey>"
Надеюсь, что это поможет любому, у кого есть подобный вопрос!:)