Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento návod ukazuje, jak použít zdroj dat definovaný v souboru app.config pro testování jednotek. Dozvíte se, jak vytvořit app.config soubor, který definuje zdroj dat, který může DataSourceAttribute třída používat. Mezi úlohy uvedené v tomto názorném postupu patří:
Vytvoření souboru app.config
Definování vlastní konfigurační sekce
Definování připojovacích řetězců
Definování zdrojů dat
Přístup ke zdrojům dat pomocí třídy DataSourceAttribute
Poznámka
DataSourceAttribute se v současné době podporuje pouze v rozhraní .NET Framework.
Požadavky
K dokončení tohoto návodu potřebujete:
Visual Studio Enterprise
Microsoft Access nebo Microsoft Excel k poskytování dat alespoň jedné z testovacích metod.
Řešení sady Visual Studio, které obsahuje testovací projekt.
Přidání souboru app.config do projektu
Pokud váš testovací projekt již obsahuje soubor app.config, přejděte na Definovat vlastní konfigurační oddíl.
V Průzkumník řešení klikněte na testovací projekt pravým tlačítkem myši a poté vyberte Přidat>Nová položka.
Otevře se okno Přidat novou položku. Pokud nevidíte všechny šablony položek, zvolte Zobrazit všechny šablonya pak zvolte šablonu položky.
Vyberte šablonu Konfigurační soubor aplikace a klikněte na Přidat.
Definovat vlastní oddíl konfigurace
Prozkoumejte soubor app.config. Obsahuje alespoň deklaraci XML a kořenový prvek.
Přidejte vlastní konfigurační oddíl do souboru app.config
Kořenovým prvkem app.config by měl být element konfigurace . Vytvořte element configSections v elementu configuration. configSections by měl být prvním prvkem v souboru app.config.
V elementu configSections vytvořte element oddílu.
V oddílu element přidejte atribut s názvem
namea přiřaďte mu hodnotumicrosoft.visualstudio.testtools. Přidejte další atribut s názvemtypea přiřaďte mu hodnotuMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.
Prvek oddílu by měl vypadat nějak takto:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
Poznámka
Název sestavení musí odpovídat verzi, kterou používáte.
Definování připojovacích řetězců
Připojovací řetězce definují informace specifické pro zprostředkovatele pro přístup ke zdrojům dat. Připojovací řetězce definované v konfiguračních souborech poskytují opakovaně použitelné informace o poskytovateli dat v rámci aplikace. V této části vytvoříte dva připojovací řetězce, které budou používány zdroji dat definovanými v oddílu Vlastní konfigurace.
Opatrnost
Připojovací řetězec může obsahovat citlivá data (například heslo). Připojovací řetězec je uložen v prostém textu ve zdrojovém kódu a v kompilovaném sestavení. Omezte přístup ke zdrojovému kódu a sestavení, abyste ochránili tyto citlivé informace.
Definování připojovacích řetězců
Za element configSections vytvořte element connectionStrings.
V elementu connectionStrings vytvořte dva elementy add.
V prvním elementu přidejte element a vytvořte následující atributy a hodnoty pro připojení k databázi Microsoft Access:
| Atribut | Hodnoty |
|---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
Ve druhém prvku přidejte prvek a vytvořte následující atributy a hodnoty pro připojení k tabulce Microsoft Excel:
| Atribut | Hodnoty |
|---|---|
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
Element connectionStrings by měl vypadat nějak takto:
<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>
Definování zdrojů dat
Část zdroje dat obsahuje čtyři atributy, které testovací modul používá k načtení dat ze zdroje dat.
namedefinuje identitu používanou DataSourceAttribute k určení, který zdroj dat se má použít.connectionStringidentifikuje připojovací řetězec vytvořený v předchozí části Definovat připojovací řetězce.dataTableNamedefinuje tabulku nebo list obsahující data, která se mají použít v testu.dataAccessMethoddefinuje techniku přístupu k hodnotám dat ve zdroji dat.
V této části definujete dva zdroje dat k použití v jednotkovém testu.
Definování zdrojů dat
Po elementu connectionStrings vytvořte element microsoft.visualstudio.testtools. Tento oddíl byl vytvořen v části Definovat vlastní konfiguraci.
V elementu microsoft.visualstudio.testtools vytvořte prvek dataSources.
V elementu dataSources vytvořte dva add elementy.
Ve prvním prvku přidejte prvek a vytvořte následující atributy a hodnoty pro zdroj dat Microsoft Access:
| Atribut | Hodnoty |
|---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
Ve druhém prvku přidejte prvek a vytvořte následující atributy a hodnoty pro zdroj dat Microsoft Excel:
| Atribut | Hodnoty |
|---|---|
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
Element microsoft.visualstudio.testtools by měl vypadat nějak takto:
<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>
Konečný soubor app.config by měl vypadat nějak takto:
<?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>
Vytvořte jednotkový test, který používá zdroje dat definované v app.config.
Teď, když je definovaný soubor app.config, vytvoříte test jednotek, který používá data umístěná ve zdrojích dat definovaných v souboru app.config. V této části:
Vytvořte zdroje dat nalezené v souboru app.config.
Zdroje dat použijte ve dvou testovacích metodách, které porovnávají hodnoty v každém zdroji dat.
Vytvoření zdroje dat Microsoft Accessu
Vytvořte databázi Aplikace Microsoft Access s názvem testdatasource.accdb.
Vytvořte tabulku a pojmenujte ji
MyDataTablev testdatasource.accdb.Vytvořte dvě pole v
MyDataTablepojmenovanýchArg1aArg2pomocí datového typuNumber.Přidejte do
MyDataTablepět entit s následujícími hodnotami proArg1aArg2: (10 50), (3,2), (6,0), (0,8) a (12312 1000).Uložte a zavřete databázi.
Změňte připojovací řetězec tak, aby směřoval na umístění databáze. Změňte hodnotu
Data Sourcetak, aby odrážela umístění databáze.
Vytvoření zdroje dat Aplikace Microsoft Excel
Vytvořte tabulku aplikace Microsoft Excel s názvem data.xlsx.
Vytvořte list s názvem
Sheet1, pokud ještě neexistuje v data.xlsx.Vytvořte dvě záhlaví sloupců a pojmenujte je
Val1aVal2vSheet1.Přidejte do
Sheet1pět entit s následujícími hodnotami proVal1aVal2: (1,1), (2,2), (3,3), (4,4) a (5,0).Uložte a zavřete tabulku.
Změňte připojovací řetězec tak, aby ukazoval na umístění tabulky. Změňte hodnotu
dbqtak, aby odrážela umístění tabulky.
K vytvoření jednotkového testu s použitím zdrojů dat app.config
Přidejte do testovacího projektu jednotkový test.
Nahraďte obsah automaticky vygenerovaného jednotkového testu následujícím kódem:
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"]); } } }Prozkoumejte atributy DataSource. Všimněte si názvů nastavení ze souboru app.config.
Sestavte řešení a spusťte testy MyTestMethod a MyTestMethod2.
Důležitý
Nasaďte položky, jako jsou zdroje dat, aby byly přístupné pro test v adresáři nasazení.