2014-12-26 2 views
0

Я создал модульный тест в отдельном проекте. Я пытаюсь изменить путь к файлу, который у меня есть как параметр в основном проекте. Я обращаюсь к пути как My.Settings.FooBarPath. Я не могу понять, как изменить его в своем модульном тесте. Как получить доступ к настройкам в моем основном проекте из проекта модульного тестирования и как изменить значения?Изменение настройки приложения в модульном тесте

Я прочитал этот пост: Modifying application settings in unit tests

Второй ответ казался наиболее полезным, но я не мог показаться, чтобы заставить ее работать для моих модульных тестов.

ответ

0

Один из способов - изменить файл settings.xml вручную. Это немного запутанно, но этот учебник может помочь сохранить и загрузить текстовые файлы в ваше приложение (конечно, вы сделали бы это без пользовательского интерфейса). https://www.youtube.com/watch?v=O3nSXaD2J9Q

Другой вариант - запустить вашу другую программу с помощью Shell() и аргумент командной строки для параметра, которое необходимо изменить, и для его изменения.

0

Вопрос был задан для VB.Net, а ответ, указанный в Modifying application settings in unit tests, предназначен для C#. Поскольку у меня был такой же вопрос для VB.Net, я подумал, что даю здесь вариант ответа на VB.Net. На основе C# ответ я получил эту работу в моем проекте (с помощью Visual Studio 2013) со следующим:

  1. Тестовый проект должен быть правильно настроен в качестве модульного тестирования для тестируемого приложения (»Create and run unit tests "должно помочь в установлении его правильно)

  2. используя полное пространство имен тестируемого приложения myprojects_namespace.My.settings даст вам полный (IntelliSense активный) доступ к пользовательским настройкам приложения при испытании.

После этого вы можете читать/записывать пользовательские настройки, как обычно. , например.

myprojects_namespace.My.settings.someProperty = "somevalue" 
Assert.AreEqual("somevalue", myprojects_namespace.My.settings.someProperty) 

P.S .: Мне не нужно, чтобы добавить что-нибудь в моем AssemblyInfo.vb файле. Нет ссылки на System.Runtime.CompilerServices.InternalsVisibleTo, поскольку, похоже, это уже было обработано путем правильной настройки тестового проекта для тестируемого приложения.

+0

ОК, как-то все это не работает ... Я пытаюсь получить текущие значения (в моем случае это пользовательские настройки) Я получаю значения, установленные во время разработки, но не пользовательские настройки, текущие значения ... он вернулся к чертежной доске, я боюсь ... –

Смежные вопросы