Устранение неполадок модульных тестов, управляемых данными
Обновлен: Ноябрь 2007
При выполнении модульных тестов, управляемых данными, можно столкнуться с проблемами связи, проверки подлинности, развертывания и другими проблемами. Для устранения этих проблем используйте сведения из следующих разделов.
Тесту не удается подключиться к источнику данных
Проверьте, что доступ к источнику данных можно получить с помощью учетной записи пользователя для выполнения тестов. Для этого необходимо знать, какая учетная запись используется для выполнения тестов. Например, при удаленном выполнении тестов применяются учетные данные агента.
Проблемы, связанные с ASP.NET
Тесты ASP.NET, выполняющиеся на веб-сервере IIS, используют учетную запись "aspnet". Поэтому, проверьте, что пользователь ASP.NET может получить доступ к источнику данных.
При использовании Dsn Excel ODBC необходимо создать системный Dsn. Системный Dsn доступен для всех пользователей. Для создания DSN используется администратор источников данных ODBC. Для этого нажмите кнопку Пуск, откройте панель управления, выберите компонент Администрирование, а затем — Источники данных.
Развертывание файлов источника данных
При использовании файла источника данных, такого как лист Microsoft Excel или CSV-файл, проверьте его доступность во время выполнения теста. Одним из способов проверки является добавление файла источника данных в качестве элемента развертывания с помощью диалогового окна конфигурации тестового запуска или добавление файла в качестве потестового элемента развертывания. Кроме того, укажите относительный путь к файлу. Дополнительные сведения о конфигурациях тестовых запусков см. в разделе Настройка выполнения теста.
Проблемы, связанные с проверкой подлинности
По возможности используйте проверку подлинности Windows.
Строки подключений
Несмотря на то, что диалоговое окно Подключение к данным успешно используется для подключения к Microsoft SQL Server и Oracle, оно неудобно для установки подключения к файловым источникам данных. Для этих источников можно задать стоку подключения, а затем в окне "Свойства" в раскрывающемся списке выбрать имя таблицы данных.
В следующей таблице приведены примеры имен поставщиков и строк подключения для большинства поставщиков данных.
Источник данных |
Имя поставщика |
Строка подключения |
MS SQL Server (поставщик .NET) |
System.Data.SqlClient |
Data Source=SqlServerName;InitialCatalog=MyDatabaseName;Integrated Security=True;Connect Timeout=30;User Instance=True |
MS SQL Express Server (поставщик .NET) |
System.Data.SqlClient |
Data Source=.\SQLEXPRESS;AttachDbFilename=C:\ \Test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True |
MS SQL Server (поставщик OLEDB, MDAC) |
System.Data.OleDb |
Provider=SQLOLEDB;Data Source= SqlServerName;Integrated Security=SSPI;Initial Catalog=MyDatabaseName |
MS SQL Server (поставщик собственного клиента, OLEDB) |
System.Data.OleDb |
Provider=SQLNCLI;Data Source= MySqlServerComputerName;Integrated Security=SSPI;Initial Catalog= MyDatabaseName |
MS SQL (ODBC) |
System.Data.Odbc |
Driver={SQL Server};Server=SqlServerName;Database=DatabaseName;Trusted_Connection=yes Driver={SQL Server};Server=SqlServerName;Database=DatabaseName;Uid=UserName;Pwd=<пароль> |
Oracle (поставщик .NET) |
System.Data.OracleClient |
Data Source=OracleServerName;Persist Security Info=True;User ID=scott;Password=<пароль>;Unicode=True |
Oracle (поставщик OLEDB, Oracle) |
System.Data.OleDb |
Provider=OraOLEDB.Oracle;Data Source=OracleServerName;Persist Security Info=True;OSAuthent=1 Provider=OraOLEDB.Oracle;Data Source=OracleServerName;Persist Security Info=True;User ID=scott;Password=<пароль> |
Oracle (поставщик OLEDB, Microsoft) |
System.Data.OleDb |
Provider=MSDAORA;Data Source= OracleServerName;Persist Security Info=True; User ID=scott;Password=<пароль> |
Oracle (ODBC) |
System.Data.Odbc |
Driver={Microsoft ODBC for Oracle};Server=OracleServerName;Uid=scott;Pwd=<пароль> |
Excel (OLEDB) |
System.Data.OleDb |
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ Test.xls;Persist Security Info=False;Extended Properties="Excel 8.0" |
Excel (ODBC, MS Excel Driver) |
System.Data.Odbc |
Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\\Test.xls;DefaultDir=C:\ Совет Для таблицы "Лист1" в качестве имени таблицы данных используйте "Лист1$". |
Excel (ODBC, Dsn) |
System.Data.Odbc |
Dsn=Excel Files;dbq=C:\Test.xls;defaultdir=C:\;driverid=790;maxbuffersize=2048;pagetimeout=5 Совет При выполнении тестов в ASP.NET рекомендуется вместо пользовательского DSN использовать системный DSN. |
CSV-файл/текстовый файл (OLEDB) |
System.Data.OleDb |
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties="text;HDR=Yes;FMT=Delimited” Совет Для файла test.csv в качестве имени таблицы следует использовать "test#csv". Примечание "HDR=Yes" означает, что первая строка содержит имена столбцов, а не фактические данные. |
CSV-файл/текстовый файл (ODBC) |
System.Data.Obdc |
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\;Extensions=asc,csv,tab,txt |
От ODBC до Dsn |
System.Data.Obdc |
Dsn=MyDsn;Uid=UserName;Pwd=<пароль> FILEDSN=C:\MyDsn.dsn;Uid=UserName;Pwd=<пароль> |
Указание источника данных отдельно от скомпилированного кода
Файл App.config используется для задания источника данных для теста. Это позволяет изменять атрибуты источника данных, например имя сервера и таблицы и т. д., без повторной компиляции тестовой сборки. При выполнении теста из командной строки убедитесь, что файл App.config находится в том же каталоге, что и тестовая сборка.
Пример
[TestMethod][DataSource("MyDataSource")]
[DeploymentItem("MyDataSource.csv")]public void MyTest() {}
Содержимое файла App.config
<configSections><section name="microsoft.visualstudio.qualitytools" type="Microsoft.VisualStudio.QualityTools.UnitTesting.Framework.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></configSections><microsoft.visualstudio.qualitytools><dataSources><add name="MyDataSource" connectionString="MyConnectionString" dataTableName="ChildSearchCriteria" dataAccessMethod="Sequential" /></dataSources></microsoft.visualstudio.qualitytools>
![]() |
---|
Свойство Run unit tests in application domain определяет, будет ли каждая сборка модульного теста выполняться в отдельном домене приложения. По умолчанию значение данного свойства равно True. Если для надлежащего функционирования модульных тестов не требуется отдельный домен приложения или файл app.config, ваши модульные тесты могут выполняться быстрее, если установить для этого свойства значение False. |
Изменения не отображаются после инициализации базы данных в методе TestInitialize
При выполнении теста, управляемого данными, адаптер модульного теста подключается к таблице данных и создает список строк данных. Затем для каждой строки он выполняет методы TestInitialize, TestMethod и TestCleanup. При изменении строк данных в методе TestInitialize адаптер модульного теста не сможет распознать изменения. Поэтому, если требуется отредактировать таблицу данных для теста, управляемого данными, делайте это в методах ClassInitialize или AssemblyInitialize.
Модульный тест выполняется успешно, но не содержит внутренних результатов
Это значит, что в таблице данных нет строк.
Другие проблемы
Если возникшая ошибка здесь не указана, поищите ответы или разместите вопросы на форумах поддержки, а также на форумах, посвященных Visual Studio Team Edition for Developers и Visual Studio Team System Test Edition.
См. также
Задачи
Практическое руководство. Настройка модульного теста, управляемого данными