Visual Studio: загрузка файла SQL из модульного теста SQL Studio - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь настроить среду модульного тестирования Microsoft Visual Studio для некоторых моих запросов SQL.Мой сценарий несколько отстал от типичного сценария разработки программного обеспечения.Для любого данного рабочего продукта, над которым я работаю, я пытаюсь выполнить запрос ONE по различным сценариям, передавая различные параметры и сравнивая результаты.

Я намерен загрузить свой запрос SQLиз файла .sql в каждом из моих модульных тестов.

Как открыть файл SQL для чтения из моего файла SqlServerUnitTest1.cs?

1 Ответ

0 голосов
/ 25 апреля 2019

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

  1. Создайте новое решение и создайте в нем новый проект модульного тестирования. (Если вы используете Reporting Services, как и я, создайте вместе с ним проект Reporting)
  2. Импортируйте запросы в ваш тестовый проект и установите для свойств значение «Копировать, если новее» или «Всегда копировать».
  3. Загрузите файл SQL в вашем тесте. Я написал функцию вида:

.

public static string LoadSqlFile(string name)
{
  string path = Path.Combine( Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
                            , @"sql\" +  name
                            );

  return File.ReadAllText(path);
}

, который загружает файл SQL по имени файла. Это ответ на мой конкретный вопрос.

  1. Написать тест (используя шаблон UnitTest, а не шаблон SqlServerUnitTest). Я написал некоторый код для генерации тестов из JSON, что облегчает эту задачу для пользователей, не использующих C #, в моей команде. В моем случае использования каждый тест имеет необъявленный параметр, который передается в тест. JSON также принимает список ожидаемых результатов, который мы сравниваем с результатом.
...