Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
Ha a tesztprojekt már rendelkezik app.config fájllal, lépjen Egyéni konfigurációs szakasz definiálása.
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.
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
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.
A configSections elemen belül hozzon létre egy szakaszt elemet.
A szakaszban elemhez adjon hozzá egy
namenevű attribútumot, és rendelje hozzámicrosoft.visualstudio.testtoolsértéket. Adjon hozzá egy másik,typenevű attribútumot, és rendeljen hozzá egyMicrosoft.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
A configSections elem után hozzon létre egy connectionStrings elemet.
A connectionStrings elemen belül hozzon létre két add elemet.
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.
namea DataSourceAttribute által használt identitást határozza meg, hogy melyik adatforrást használja.connectionStringazonosítja az előző Kapcsolati sztringek definiálása szakaszban létrehozott kapcsolati sztringet.dataTableNamehatározza meg a tesztben használni kívánt adatokat tartalmazó táblát vagy lapot.dataAccessMethodhatá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
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.
A microsoft.visualstudio.testtools elemen belül hozzon létre egy dataSources elemet.
Az dataSources elemen belül hozzon létre két adjon hozzá elemeket.
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
Hozzon létre egy testdatasource.accdbnevű Microsoft Access-adatbázist.
Hozzon létre egy táblát, és nevezze el a
MyDataTable-ben található táblát -nak.Két mezőt hozzon létre a
MyDataTable-ban, nevezzük el őketArg1ésArg2, aNumberadattípust használva.Adjon hozzá öt entitást a
MyDataTablea következő értékekkel aArg1és aArg2esetében: (10,50), (3,2), (6,0), (0,8) és (12312 1000).Mentse és zárja be az adatbázist.
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
Hozzon létre egy data.xlsxnevű Microsoft Excel-számolótáblát.
Amennyiben még nem létezik, hozzon létre egy
Sheet1nevű lapot a(z) data.xlsx-ban.Hozzon létre két oszlopfejlécet, és nevezze el őket
Val1ésVal2-re aSheet1-ben.Adjon hozzá öt entitást
Sheet1a következő értékekkel aVal1ésVal2esetében: (1,1), (2,2), (3,3), (4,4) és (5,0).Mentse és zárja be a számolótáblát.
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
Adjon hozzá egy egységtesztet a tesztprojekthez.
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"]); } } }Vizsgálja meg a DataSource-attribútumokat. Figyelje meg a app.config fájl beállításneveit.
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.