Поделиться через


Устранение неполадок модульных тестов, управляемых данными

Обновлен: Ноябрь 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>

ms404700.alert_note(ru-ru,VS.90).gifПримечание.

Свойство 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.

См. также

Задачи

Практическое руководство. Настройка модульного теста, управляемого данными

Основные понятия

Написание кода модульного теста, управляемого данными