Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом пошаговом руководстве показано, как использовать источник данных, определенный в файле app.config для модульного тестирования. Вы узнаете, как создать файл app.config, определяющий источник данных, который может использоваться классом DataSourceAttribute. Задачи, представленные в этом пошаговом руководстве, включают следующие:
Создание файла app.config.
Определение настраиваемого раздела конфигурации.
Определение строк подключения.
Определение источников данных.
Доступ к источникам данных с помощью класса DataSourceAttribute.
Заметка
DataSourceAttribute в настоящее время поддерживается только в .NET Framework.
Необходимые условия
Чтобы выполнить это пошаговое руководство, вам потребуется:
Visual Studio Enterprise
Microsoft Access или Microsoft Excel предоставляют данные по крайней мере для одного из методов тестирования.
Решение Visual Studio, содержащее тестовый проект.
Добавление файла app.config в проект
Если тестовый проект уже имеет файл app.config, перейдите в раздел Определение пользовательского раздела конфигурации.
Щелкните правой кнопкой мыши тестовый проект в обозревателе решений , а затем выберите Добавить>новый элемент.
Откроется окно добавления нового элемента. Если вы не видите все шаблоны элементов, выберите показать все шаблоны, а затем выберите шаблон элемента.
Выберите шаблон файла конфигурации приложения и щелкните Добавить.
Определение настраиваемого раздела конфигурации
Проверьте файл app.config. Он содержит по крайней мере объявление XML и корневой элемент.
Добавление настраиваемого раздела конфигурации в файл app.config
Корневой элемент app.config должен быть элементом конфигурации . Создайте элемент configSections в элементе конфигурации . configSections должен быть первым элементом в файле app.config.
В элементе configSections создайте элемент раздела.
В разделе элемент добавьте атрибут с именем
nameи назначьте его значениемmicrosoft.visualstudio.testtools. Добавьте еще один атрибут с именемtypeи назначьте его значениеMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.
Элемент раздела должен выглядеть следующим образом:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
Заметка
Имя сборки должно соответствовать используемой версии.
Определение строк подключения
Строки подключения определяют сведения, относящиеся к поставщику, для доступа к источникам данных. Строки подключения, определенные в файлах конфигурации, предоставляют повторно используемые сведения о поставщике данных в приложении. В этом разделе вы создадите две строки подключения, которые будут использоваться источниками данных, определенными в разделе пользовательской конфигурации.
Осторожность
Строка подключения может содержать конфиденциальные данные (например, пароль). Строка подключения хранится в виде обычного текста в исходном коде и в скомпилированной сборке. Ограничение доступа к исходному коду и сборке для защиты этой конфиденциальной информации.
Определение строк подключения
После элемента configSections создайте элемент connectionStrings.
В элементе connectionStrings создайте два элемента add.
В первом добавьте элемент, создайте следующие атрибуты и значения для подключения к базе данных Microsoft Access:
| Атрибут | Значения |
|---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
Во втором добавьте элемент, создайте следующие атрибуты и значения для подключения к электронной таблице Microsoft Excel:
| Атрибут | Значения |
|---|---|
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
Элемент connectionStrings должен выглядеть примерно так:
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
Определение источников данных
Раздел источников данных содержит четыре атрибута, которые используются подсистемой тестирования для получения данных из источника данных.
nameопределяет идентификатор, используемый DataSourceAttribute для указания источника данных.connectionStringопределяет строку подключения, созданную в предыдущем разделе "Определение строк подключения".dataTableNameопределяет таблицу или лист, в котором хранятся данные для использования в тесте.dataAccessMethodопределяет метод доступа к значениям данных в источнике данных.
В этом разделе описано, как определить два источника данных для использования в модульном тесте.
Определение источников данных
После элемента connectionStrings создайте элемент microsoft.visualstudio.testtools. Этот раздел был создан в разделе "Определение настраиваемой конфигурации".
В элементе microsoft.visualstudio.testtools создайте элемент dataSources.
В элементе dataSources создайте два элемента добавить.
В первом добавьте элемент, создайте следующие атрибуты и значения для источника данных Microsoft Access:
| Атрибут | Значения |
|---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
Во втором добавьте элемент, создайте следующие атрибуты и значения для источника данных Microsoft Excel:
| Атрибут | Значения |
|---|---|
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
Элемент microsoft.visualstudio.testtools должен выглядеть следующим образом:
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
<add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
Окончательный app.config файл должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
</configSections>
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
<add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
</configuration>
Создание модульного теста, использующего источники данных, определенные в app.config
Теперь, когда был определен файл app.config, вы создадите модульный тест, использующий данные, расположенные в источниках данных, определенных в файле app.config. В этом разделе мы будем:
Создайте источники данных, найденные в файле app.config.
Используйте источники данных в двух методах тестирования, которые сравнивают значения в каждом источнике данных.
Создание источника данных Microsoft Access
Создайте базу данных Microsoft Access с именем testdatasource.accdb.
Создайте таблицу и назовите ее
MyDataTableв testdatasource.accdb.Создайте два поля в
MyDataTableс именемArg1иArg2с помощью типа данныхNumber.Добавьте пять сущностей в
MyDataTableсо следующими значениями дляArg1иArg2соответственно: (10 50), (3,2), (6,0), (0,8) и (12312 1000).Сохраните и закройте базу данных.
Измените строку подключения, чтобы указать расположение базы данных. Измените значение
Data Source, чтобы отразить расположение базы данных.
Создание источника данных Microsoft Excel
Создайте электронную таблицу Microsoft Excel с именем data.xlsx.
Создайте лист с именем
Sheet1, если он еще не существует в data.xlsx.Создайте два заголовка столбца и назовите их
Val1иVal2вSheet1.Добавьте пять сущностей в
Sheet1со следующими значениями дляVal1иVal2соответственно: (1,1), (2,2), (3,3), (4,4) и (5,0).Сохраните и закройте электронную таблицу.
Измените строку подключения, чтобы указать расположение электронной таблицы. Измените значение
dbq, чтобы отразить расположение электронной таблицы.
Создание модульного теста с помощью источников данных app.config
Добавьте модульное тестирование в тестовый проект.
Замените автоматически созданное содержимое модульного теста следующим кодом:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject1 { [TestClass] public class UnitTest1 { private TestContext context; public TestContext TestContext { get { return context; } set { context = value; } } [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."); } [TestMethod()] [DeploymentItem("MyTestProject\\data.xlsx")] [DataSource("MyExcelDataSource")] public void MyTestMethod2() { Assert.AreEqual(context.DataRow["Val1"], context.DataRow["Val2"]); } } }Проверьте атрибуты DataSource. Обратите внимание на имена параметров из файла app.config.
Создайте решение и запустите тесты MyTestMethod и MyTestMethod2.
Важно
Разверните такие элементы, как источники данных, чтобы они были доступны для теста в каталоге развертывания.
Связанное содержимое
- Протестируйте ваш код модульными тестами
- Практическое руководство. Создание модульного теста на основе данных