Может ли модульный тестовый проект загрузить файл app.config целевого приложения?

Я исправил эту проблему с помощью:

varchar(200) 

, замененного на

varchar(191)

, все varchar, которые имеют более 200, заменяют их 191 или устанавливают их текст.

142
задан Community 23 May 2017 в 11:47
поделиться

5 ответов

Самый простой способ сделать это должно добавить .config файл в разделе развертывания по Вашему модульному тесту.

Для этого открываются .testrunconfig файл от Ваших Объектов Решения. В разделе Deployment добавьте вывод .config файлы от каталога сборки Вашего проекта (по-видимому bin\Debug).

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

Редактирование: Я забыл добавлять, это не будет работать во всех ситуациях, таким образом, Вы, возможно, должны будете включать сценарий запуска, который переименовывает вывод .config для соответствия имени модульного теста.

55
ответ дан Jeromy Irvine 23 May 2017 в 11:47
поделиться
  • 1
    О, но это убегает как половина панели, расположенной в индексе 0 и индексе 13. Существует ли способ сместить так панель, выстраивается в линию немного оси Y? – Matthew The Terrible 15 March 2013 в 07:02

Используете ли Вы Тестирование системы Команды или NUnit, лучшая практика должна создать отдельную Библиотеку классов для Ваших тестов. Просто добавление App.config к Вашему Тестовому проекту будет автоматически скопировано в Вашу папку мусорного ведра, когда Вы скомпилируете .

, Если бы Ваш код уверен в определенных тестах конфигурации, самый первый тест, я записал бы, проверяет это, конфигурационный файл доступен ( так, чтобы я знал, что я весьма нормален ):

<configuration>
   <appSettings>
       <add key="TestValue" value="true" />
   </appSettings>
</configuration>

И тест:

[TestFixture]
public class GeneralFixture
{
     [Test]
     public void VerifyAppDomainHasConfigurationSettings()
     {
          string value = ConfigurationManager.AppSettings["TestValue"];
          Assert.IsFalse(String.IsNullOrEmpty(value), "No App.Config found.");
     }
}

Идеально, необходимо писать код, таким образом, что объекты конфигурации передаются в классы. Это не только разделяет Вас от проблемы конфигурационного файла, но и она также позволяет Вам тестам записи на различные сценарии конфигурации.

public class MyObject
{
     public void Configure(MyConfigurationObject config)
     {
          _enabled = config.Enabled;
     }

     public string Foo()
     {
         if (_enabled)
         {
             return "foo!";
         }
         return String.Empty;
     }

     private bool _enabled;
}

[TestFixture]
public class MyObjectTestFixture
{
     [Test]
     public void CanInitializeWithProperConfig()
     {
         MyConfigurationObject config = new MyConfigurationObject();
         config.Enabled = true;

         MyObject myObj = new MyObject();
         myObj.Configure(config);

         Assert.AreEqual("foo!", myObj.Foo());
     }
}
53
ответ дан dhinesh 23 May 2017 в 11:47
поделиться
  • 1
    В этом случае я думаю, что Вам, возможно, понадобились бы к вручную trnasform Ваши данные до построения диаграммы. – Dutts 15 March 2013 в 07:09

Если Вы используете NUnit, смотрите на это сообщение . В основном у Вас должен будет быть свой app.config в том же каталоге как Ваш .nunit файл.

4
ответ дан Cory Foy 23 May 2017 в 11:47
поделиться

Я использую NUnit, и в моем каталоге проекта у меня есть копия моего Приложения. Конфигурация, что я изменяю некоторую конфигурацию (пример я перенаправляю к тестовой базе данных...). У Вас должен быть он в тот же каталог протестированного проекта, и Вы будете в порядке.

0
ответ дан Patrick Desjardins 23 May 2017 в 11:47
поделиться
  • 1
    Спасибо за совместное использование Ваших результатов! – Martin R 9 March 2013 в 11:22

В Visual Studio 2008 я добавил файл app.config в тестовый проект в качестве существующего элемента и выбрал копию в качестве ссылки, чтобы убедиться, что он не дублируется. Таким образом, в моем решении будет только одна копия. В нескольких тестовых проектах это очень удобно!

Add Existing Item

Add As Link

95
ответ дан 23 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: