2016-01-27 1 views
1

I'v некоторые блок-схемы с интерфейсом DB, которые берут строку подключения из файла app.config. Я хватаю строки за ConfigurationManager класс.Строки подключения недоступны в App.Config в модулях Тесты, выполняемые на TFS 2015

var conString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 

Тесты выполняются нормально на dev-машине, но не на TFS. Существует ошибка null refernce. Если я заменил строку соединения в модульном тесте на жесткую кодированную строку - то же, что и в app.config, - тогда тест работает. О да, и я убедился, что app.config настроен на «копирование в папку вывода».

Есть ли известная проблема с TFS и ConfigurationManager?

П

+0

Можете ли вы показать свой код, где вы пытаетесь получить строку подключения? –

+0

@ P.Jairai: это код в вопросе. – Pompair

ответ

0

На самом деле, я сделал еще один тестовый проект, в моем решении и добавил app.config там снова со струнами Конн и теперь он работает и на TFS. Я не знаю, в чем причина, но я оставлю здесь вопрос для возможной ссылки и решения для других. Спасибо.

1

Недавно я столкнулся с той же проблемой с TFS 2015 (в помещениях с обновлением 2). У нас есть несколько тестовых проектов, которые получают доступ к строке соединения из файла app.config, однако одному конкретному проекту не удалось получить доступ к строке подключения, которая привела к сбою нашей сборки.

Я изменил .csproj файл в соответствии с другом Дрессировка проектов, но это не обеспечивает никакого успеха, а не следующие работал для меня:

  1. скопировал содержимое App.config в блокнот
  2. Удаляется файл App.config из проекта
  3. Добавлена ​​новая настройка файла приложения (App.config) к проекту
  4. вставлено содержимое из блокнота в новый файл App.confg
  5. правой кнопкой мыши файл App.config и изменил его свойства:
    • Сложение Действие: Содержание
    • Копировать в выходной каталог: Копировать всегда

При регистрации заезда во всех модульных тестов в пределах проект успешно прошел.

Это странное решение, но оно было проведено нашими испытаниями.

Примечание: удаление файла App.config является необходимым шагом. Изменение свойств файла (до удаления файла) не помогло.

Update:

После применения вышеуказанного раствора я заметил, все модульные тесты были запущены два раза, и после некоторого исследования я обнаружил, что весь вопрос был до нашей конфигурации сборки: -

  • На нашей задачи Visual Studio Build мы используем следующий параметр в наших MS Build Arguments:

    /p:OutDir=$(Build.StagingDirectory)

  • Нашей Визуальная задача Studio Test была настроена искать тестовую сборку в следующем месте:

    **\$(BuildConfiguration)\*test*.dll;-:**\obj\**

Изменяя расположение тестовой сборки на следующих фиксированных всем:

$(Build.StagingDirectory)\*test*.dll;-:**\_PublishedWebsites\**

Больше никаких проблем с файлами App.config и модульными тестами не было выполнено только один раз.

0

Мой тестовый проект - отдельный проект из основного проекта. Поэтому ему нужна собственная копия App.config. Выполните шаги, описанные в предыдущем ответе, чтобы добавить новый файл конфигурации приложения и укажите то же содержимое, что и в вашем основном проекте.

+1

добро пожаловать в SO. «в предыдущем ответе» немного расплывчато, какие шаги ссылаются на OP, чтобы следовать? – navicore