Используйте файл конфигурации, чтобы указать строку подключения, чтобы определить источник данных в модульном тесте - PullRequest
0 голосов
/ 15 января 2019

Я обращаюсь к этой статье за ​​созданием управляемых данными модульных тестовых примеров с использованием строки подключения в файле app.config.

https://docs.microsoft.com/en-us/visualstudio/test/walkthrough-using-a-configuration-file-to-define-a-data-source?view=vs-2017

[TestClass]
public class IntegrationTest
{
    public TestContext TestContext { get; set; }

    [TestMethod]
    [DataSource("MySQLDataSource")]
    public void TestRequestSummary()
    {
        string customerId = TestContext.DataRow["MessageId"].ToString();
        Assert.IsNotNull(customerId);
    }
}

App.config

<configuration>
    <configSections>
        <section name="microsoft.visualstudio.testtools" 
                 type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </configSections>
    <connectionStrings>    
        <add name="MySQL" 
             connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MYPortal;Integrated Security=True;" 
             providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <microsoft.visualstudio.testtools>
        <dataSources>
            <add name="MySQLDataSource" connectionString="MySQL" 
                 dataTableName="ServiceLog" dataAccessMethod="Sequential"/>
        </dataSources>
    </microsoft.visualstudio.testtools>
</configuration>

Когда я пытаюсь отладить контрольный пример, он завершился ошибкой:

Результат2 StackTrace:

в Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource.GetData (ITestMethod testMethodInfo, ITestContext testContext)

Сообщение Result2: инициализатор типа для 'Microsoft.VisualStudio.TestTools.UnitTesting.TestConfiguration' вызвал исключение.

Может ли кто-нибудь помочь мне решить эту проблему?

Окружающая среда:

  • Visual Studio 2017
  • Microsoft.VisualStudio.TestTools.UnitTesting
  • .Net Framework 4.6

1 Ответ

0 голосов
/ 16 января 2019

Я использовал MSTest v2 в качестве моей среды модульного тестирования, и, похоже, они изменили раздел конфигурации для этой конкретной версии.

Я нашел ответ в следующей теме:

https://github.com/Microsoft/testfx/issues/129#issuecomment-354124544

Код:

Изменил мой файл app.config на:

<section name="microsoft.visualstudio.testtools"
         type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,
         Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...