Megosztás a következőn keresztül:


Útmutató: Adatforrás definiálása konfigurációs fájl használatával

Ez az útmutató bemutatja, hogyan használható egy app.config fájlban definiált adatforrás egységtesztelésre. Megtudhatja, hogyan hozhat létre egy app.config fájlt, amely meghatározza a DataSourceAttribute osztály által használható adatforrást. Az útmutatóban bemutatott feladatok a következők:

  • app.config fájl létrehozása.

  • Egyéni konfigurációs szakasz definiálása.

  • Kapcsolati sztringek definiálása.

  • Az adatforrások meghatározása.

  • Az adatforrások elérése a DataSourceAttribute osztály használatával.

Jegyzet

A DataSourceAttribute jelenleg csak a .NET-keretrendszerben támogatott.

Előfeltételek

Az útmutató elvégzéséhez a következőkre van szükség:

  • Visual Studio Enterprise

  • A Microsoft Access vagy a Microsoft Excel legalább egy tesztelési módszerhez biztosít adatokat.

  • Tesztprojektet tartalmazó Visual Studio-megoldás.

app.config fájl hozzáadása a projekthez

  1. Ha a tesztprojekt már rendelkezik app.config fájllal, lépjen Egyéni konfigurációs szakasz definiálása.

  2. Kattintson a jobb gombbal a tesztprojektre Megoldáskezelő, majd válassza >Új elem hozzáadásalehetőséget.

    Megnyílik az Új elem hozzáadása ablak. Ha nem látja az összes elemsablont, válassza Az összes sablon megjelenítéselehetőséget, majd válassza ki az elemsablont.

  3. Válassza ki az alkalmazás-konfigurációs fájl sablont, és kattintson a Hozzáadásgombra.

Egyéni konfigurációs szakasz definiálása

Vizsgálja meg a app.config fájlt. Legalább az XML-deklarációt és a gyökérelemet tartalmazza.

Az egyéni konfigurációs szakasz hozzáadása a app.config fájlhoz

  1. A app.config gyökérelemének konfigurációs elemnek kell lennie. Hozzon létre egy configSections elemet a konfigurációs elemen belül. A configSections legyen a app.config fájl első eleme.

  2. A configSections elemen belül hozzon létre egy szakaszt elemet.

  3. A szakaszban elemhez adjon hozzá egy name nevű attribútumot, és rendelje hozzá microsoft.visualstudio.testtoolsértéket. Adjon hozzá egy másik, type nevű attribútumot, és rendeljen hozzá egy Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensionsértéket.

A szakasz elemének a következőhöz hasonlóan kell kinéznie:

<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />

Jegyzet

A szerelvény nevének meg kell egyeznie a használt verzióval.

Kapcsolati sztringek definiálása

A kapcsolati sztringek szolgáltatóspecifikus információkat határoznak meg az adatforrások eléréséhez. A konfigurációs fájlokban definiált kapcsolati sztringek újrafelhasználható adatszolgáltatói információkat biztosítanak egy alkalmazáson belül. Ebben a szakaszban két kapcsolati sztringet hoz létre, amelyeket az egyéni konfigurációs szakaszban definiált adatforrások fognak használni.

Figyelem

A kapcsolati sztring bizalmas adatokat (például jelszót) tartalmazhat. A kapcsolati sztring egyszerű szövegben van tárolva, a forráskódban és az előállított kódban. A bizalmas információk védelme érdekében korlátozza a forráskódhoz és a szerelvényhez való hozzáférést.

Kapcsolati sztringek definiálása

  1. A configSections elem után hozzon létre egy connectionStrings elemet.

  2. A connectionStrings elemen belül hozzon létre két add elemet.

  3. Az első elem hozzáadásához hozza létre a következő attribútumokat és értékeket a Microsoft Access-adatbázishoz való csatlakozáshoz:

Attribútum Értékrend
name "MyJetConn"
connectionString "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;"
providerName "System.Data.OleDb"

A második elemhez adja hozzá a következő attribútumokat és értékeket a Microsoft Excel-számolótáblához való csatlakozás érdekében:

Attribútum Értékrend
name "MyExcelConn"
connectionString "Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5"
providerName "System.Data.Odbc"

A connectionStrings elemnek a következőképpen kell kinéznie:

<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>

Adatforrások definiálása

Az adatforrások szakasz négy attribútumot tartalmaz, amelyeket a tesztmotor használ az adatok adatforrásból való lekéréséhez.

  • name a DataSourceAttribute által használt identitást határozza meg, hogy melyik adatforrást használja.

  • connectionString azonosítja az előző Kapcsolati sztringek definiálása szakaszban létrehozott kapcsolati sztringet.

  • dataTableName határozza meg a tesztben használni kívánt adatokat tartalmazó táblát vagy lapot.

  • dataAccessMethod határozza meg az adatforrásban lévő adatértékek elérésének technikáját.

Ebben a szakaszban egy egységtesztben használandó két adatforrást fog definiálni.

Adatforrások definiálása

  1. A connectionStrings elem után hozzon létre egy microsoft.visualstudio.testtools elemet. Ez a szakasz az Egyéni konfiguráció definiálása szakaszban lett létrehozva.

  2. A microsoft.visualstudio.testtools elemen belül hozzon létre egy dataSources elemet.

  3. Az dataSources elemen belül hozzon létre két adjon hozzá elemeket.

  4. Az első elemben hozzon létre a következő attribútumokat és értékeket egy Microsoft Access adatforrás számára:

Attribútum Értékrend
name "MyJetDataSource"
connectionString "MyJetConn"
dataTableName "MyDataTable"
dataAccessMethod "Sequential"

A második elem hozzáadásához hozza létre a következő attribútumokat és értékeket egy Microsoft Excel-adatforráshoz:

Attribútum Értékrend
Name "MyExcelDataSource"
connectionString "MyExcelConn"
dataTableName "Sheet1$"
dataAccessMethod "Sequential"

A microsoft.visualstudio.testtools elemnek a következőhöz hasonlóan kell kinéznie:

<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>

Az utolsó app.config fájlnak a következőhöz hasonlóan kell kinéznie:

<?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>

A app.config definiált adatforrásokat használó egységteszt létrehozása

Most, hogy definiált egy app.config fájlt, létre fog hozni egy egységtesztet, amely a app.config fájlban meghatározott adatforrásokban található adatokat használja. Ebben a szakaszban a következőt fogjuk:

  • Hozza létre a app.config fájlban található adatforrásokat.

  • Az adatforrásokat két olyan tesztelési módszerben használhatja, amelyek összehasonlítják az egyes adatforrások értékeit.

Microsoft Access-adatforrás létrehozása

  1. Hozzon létre egy testdatasource.accdbnevű Microsoft Access-adatbázist.

  2. Hozzon létre egy táblát, és nevezze el a MyDataTable-ben található táblát -nak.

  3. Két mezőt hozzon létre a MyDataTable-ban, nevezzük el őket Arg1 és Arg2, a Number adattípust használva.

  4. Adjon hozzá öt entitást a MyDataTable a következő értékekkel a Arg1 és a Arg2esetében: (10,50), (3,2), (6,0), (0,8) és (12312 1000).

  5. Mentse és zárja be az adatbázist.

  6. Módosítsa a kapcsolati sztringet úgy, hogy az az adatbázis helyére mutasson. Módosítsa a Data Source értékét az adatbázis helyének megfelelően.

Microsoft Excel-adatforrás létrehozása

  1. Hozzon létre egy data.xlsxnevű Microsoft Excel-számolótáblát.

  2. Amennyiben még nem létezik, hozzon létre egy Sheet1 nevű lapot a(z) data.xlsx-ban.

  3. Hozzon létre két oszlopfejlécet, és nevezze el őket Val1 és Val2-re a Sheet1-ben.

  4. Adjon hozzá öt entitást Sheet1 a következő értékekkel a Val1 és Val2esetében: (1,1), (2,2), (3,3), (4,4) és (5,0).

  5. Mentse és zárja be a számolótáblát.

  6. Módosítsa a kapcsolati karakterláncot úgy, hogy a számolótábla helyére mutasson. Módosítsa a dbq értékét a számolótábla helyének megfelelően.

Egységteszt létrehozása a app.config adatforrásokkal

  1. Adjon hozzá egy egységtesztet a tesztprojekthez.

  2. Cserélje le az egységteszt automatikusan létrehozott tartalmát a következő kódra:

    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"]);
            }
        }
    }
    
  3. Vizsgálja meg a DataSource-attribútumokat. Figyelje meg a app.config fájl beállításneveit.

  4. Hozza létre a megoldást, és futtassa a MyTestMethod és a MyTestMethod2 teszteket.

Fontos

Helyezzen üzembe olyan elemeket, mint az adatforrások, hogy elérhetők legyenek a teszthez az üzembehelyezési címtárban.