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