Тестирование - строка подключения отсутствует - PullRequest
24 голосов
/ 27 февраля 2012

Visual studio создала для меня проект модульного теста на основе метода (щелкните правой кнопкой мыши добавить тест). Когда я пытаюсь получить доступ к базе данных, я получаю исключение. Запустил этот код, чтобы увидеть, какое у меня было соединение:

ConnectionStringSettings connStringSettings = ConfigurationManager.
    ConnectionStrings["myConnectionString"];

но connStringSettings равно нулю. После проверки коллекция ConnectionStrings имеет счетчик только один. Кажется, он не читает из моего web.config.

Мой DAL изолирован и не может установить строку подключения через код. Строка подключения устанавливается в коде так:

set
{
    value = System.Configuration.ConfigurationManager.
        ConnectionStrings["myConnectionString"].ConnectionString;
}

Как я могу решить это?

Ответы [ 4 ]

55 голосов
/ 27 февраля 2012

Добавьте файл App.config в проект модульного тестирования и скопируйте строку подключения из Web.config.

Обновление: лучшее решение

Хотя добавление конфигурации решит насущную проблему, оно все равно приведет к модульным тестам в зависимости от фактического соединения с базой данных, что не очень хорошо. Лучший способ решить эту проблему - полностью смоделировать DAL и передать его службам, которые его используют.

Microsoft дает некоторые указания по этому вопросу здесь . Настройка занимает немного больше времени, но позволяет тестам быть гораздо более содержательными и завершенными.

6 голосов
/ 18 марта 2014

Отлично, это сработало для меня. Я добавил файл App.config в проект модульного тестирования. Но удостоверьтесь, что мы следуем синтаксису, иначе он выдаст исключение.

<connectionStrings>

    <add name="test" connectionString="" providerName="System.Data.SqlClient" />

    <add name="db" connectionString=""" providerName="System.Data.SqlClient"/>

</connectionStrings>

5 голосов
/ 27 февраля 2012

Добавить строку подключения в файл app.config модульного теста.Проект модульного теста не будет иметь доступа к веб-конфигурации вашего веб-проекта.

0 голосов
/ 23 сентября 2016

Другое решение - перейти на страницы свойств решения (решение-> свойства)

Startup Project - проверьте, запущен ли один проект запуска с конфигурацией.

Выберите, хорошо - готово.

...