2015-12-31 3 views
0

На самом деле, у меня есть строка подключения в web.config, и это соединение используется для моего текущего проекта.
Замените или добавьте новую строку подключения в app.config

У меня есть также проект тестирования , поэтому я хочу указать на другую строку соединения в этом. Обе базы данных имеют одинаковую структуру, разница в том, что я не хочу влиять на базу данных моего текущего проекта. Могу ли я указать на другую строку подключения в app.config моего проекта тестирования?

+0

Да, вы можете создать соединение строку в вашем app.config тестового проекта, а затем ссылку на него. –

+0

Я попытался указать новую строку соединения в app.config, но, к сожалению, когда я запускаю свой проект тестирования, всегда берется строка подключения web.config, единственная разница в строках соединения - это точка в разных базах данных. слышал что-то о внешних файлах конфигурации, но это тот же результат. –

+0

Один из подходов - использовать [преобразования web.config] (https://msdn.microsoft.com/library/dd465318%28v=vs.100%29.aspx). Скорее неприятность, чтобы разобраться в первый раз, но полезный способ изменить различные значения конфигурации в зависимости от сборки. – HABO

ответ

0

Да, вы можете иметь отдельный файл app.config или web.config в своем модульном тестовом проекте, и там вы можете определить отдельную строку соединения, указывающую на другой сервер, будь то локальный или удаленный все вместе.

0

Да, вы можете указать другую базу данных в app.config. Когда вы добавляете строки подключения в app.config, вы называете их так, чтобы ссылаться на них в коде. Просто добавьте новое соединение в раздел <connectionStrings> и назовите его чем-то значимым и укажите его, когда вам нужно.

Эта страница MSDN объясняет, как создать модульное тестирование с использованием источников данных App.config: https://msdn.microsoft.com/en-us/library/ms243192.aspx

Их пример выполняет следующие действия для достижения этой цели:

[TestMethod()] 
    [DeploymentItem("MyTestProject\\testdatasource.accdb")] 
    [DataSource("MyJetDataSource")] 
    public void MyTestMethod() 
    { 
     int a = Int32.Parse(context.DataRow["Arg1"].ToString()); 
     int b = Int32.Parse(context.DataRow["Arg2"].ToString()); 
     Assert.AreNotEqual(a, b, "A value was equal."); 
    } 
+0

Я понял вашу идею, но я забыл упомянуть вас, что у меня есть ссылка на службу в моем тестовом проекте, я не знаю, является ли это причиной, по которой этот всегда принимает строку подключения dev. –