Проблема управляемых данными модульных тестов - PullRequest
3 голосов
/ 26 сентября 2011

У меня проблемы с настройкой модульных тестов для использования источника данных Excel .xlsx.

Файл My App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </configSections>
  <connectionStrings>
    <add name="TestData" connectionString="Dsn=Excel Files;dbq=TestData.xlsx;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
  </connectionStrings>
  <microsoft.visualstudio.testtools>
    <dataSources>
      <add name="GetAllCellNamesTest" connectionString="TestData" dataTableName="GetAllCellNamesTest$" dataAccessMethod="Sequential"/>
</dataSources>

Я подтвердил, что он находит TestData.xlsx, и есть лист с именем GetAllCellNamesTest.

В моем классе модульных тестов у меня есть следующие настройки:

        [TestMethod()]
        [DeploymentItem("TestProject\\TestData.xlsx")]
        [DataSource("GetAllCellNamesTest")]
        public void GetAllCellNamesTest()
        {
            // ... test code

TestData.xlsx копируется в каталог результатов теста, и все модульные тесты, которые не пытаются ссылаться на источник данных, проходят.

Однако этот тест не пройден со следующим сообщением:

The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see "Troubleshooting Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library.
Error details: ERROR [42S02] [Microsoft][ODBC Excel Driver] The Microsoft Access database engine could not find the object 'GetAllCellNamesTest$'. Make sure the object exists and that you spell its name and the path name correctly. If 'GetAllCellNamesTest$' is not a local object, check your network connection or contact the server administrator.

Я действительно не уверен, где в моей настройке неправильно, я выполнил это пошаговое руководство по MSDN, чтобы получить настройки: Пошаговое руководство. Использование файла конфигурации для определения источника данных . Обратите внимание, что я изменил версию section на 10.0.0.0, потому что я использую .net 4.0 (согласно примечанию внизу страницы).

edit: ох, и все файлы локально расположены на моем компьютере.

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

Вы пытались использовать полный путь к файлу?

Файл доступен только для чтения?

2 голосов
/ 08 ноября 2011

Вы также можете указать файлы / каталог, которые вы хотите развернуть, как часть ваших TestSettings.Это избавит вас от необходимости устанавливать атрибут DeploymentItem для каждого метода тестирования.

1 голос
/ 28 марта 2012

вы используете конфигурацию после;

<configSections>
  <section name="microsoft.visualstudio.testtools" 
           type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,
           Microsoft.VisualStudio.QualityTools.UnitTestFramework,
           Version=10.0.0.0, Culture=neutral,
           PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
...