Sdílet prostřednictvím


Inovace jednotky testy z Visual Studio 2010

Visual Studio 2012 zahrnuje kompatibilitu projektů testů s projekty testů Visual Studio 2010 SP1.Například, projekty testů, které byly vytvořeny pomocí Visual Studio 2010 SP1, lze bez upgradu otevřít pomocí Visual Studio 2012.Tým tedy můžete použít Visual Studio 2010 SP1 i Visual Studio 2012, pro práci se stejným projektem testu.Další informace naleznete v tématu Upgrading tests from Visual Studio 2010.

Visual Studio 2012 zavádí několik změn pro jednotkové testování.V důsledku těchto změn, je důležité pochopit problémy s kompatibilitou mezi předchozími verzemi aplikace Visual Studio a Visual Studio 2012.Mezi změnami v jednotkovém testování, je významná změna, že Visual Studio 2012 obsahuje více než jednu šablonu projektu testu, včetně šablony projektu jednotkového testu.Nové jednotkové testy jsou přidány do nové šablony projektu jednotkového testu.Jednotkové testy mohou být také součástí jiné nové šablony projektu testu, nazvané Šablona projektu testu kódovaného uživatelského rozhraní.Další informace o nových šablonách projektu testů, viz Upgrade z dřívější verze aplikace Visual Studio zkoušky.Nové projekty jednotkových testů již ve výchozím nastavení nezahrnují testovací soubor nastavení.Vyloučením testovacího souboru nastavení se zlepší výkon jednotkových testů.Z důvodu kompatibility, je stále možné využívat existující projekty testů, vytvořené pomocí aplikace Visual Studio 2010.Avšak je doporučeno, odebrat z projektu testu soubor nastavení testu, a to z výkonnostních důvodů, jestli není specifický důvod mít zkušební soubor nastavení.Je možné například zachovat soubor nastavení testu, pokud je nutné spustit jednotkové testy v distribuovaném prostředí, nebo je potřeba shromáždit určitá diagnostická data.Pokud budete mít stejnou potřebu s novou šablonou projektu jednotkového testu nebo šablonou projektu testu kódovaného uživatelského rozhraní, je možné přidat soubor nastavení testu ručně.

[!POZNÁMKA]

Existující jednotkové testy v projektech Visual Studio 2010 SP1 budou bez problémů pracovat mezi Visual Studio 2010 SP1 a Visual Studio 2012.Žádné změny, v souborech projektu testu, nejsou provedeny, při otevření projektu testu Visual Studio 2010 obsahujícího jednotkové testy v Visual Studio 2012, nebo naopak.

Poznámka k upozorněníUpozornění

Visual Studio 2010Nelze otevřít C + +/ CLI project toolset tohoto cíle 11.0 (to znamená projekt vytvořený v Visual Studio 2012).Toto omezení se vztahuje na všechny C + +/ CLI projekty, nikoli pouze C + +/ CLI jednotku testovací projekty.

[!POZNÁMKA]

Nové jednotkové testy je možné spustit pomocí vstest.console.exe z příkazového řádku.Další informace o použití vstest.console.exe, viz Možnosti příkazového řádku VSTest.Console.exe nebo pomocí přepínače nápovědy příkaz: vstest.console.exe /?.Je možné dále spouštět existující jednotkové testy pomocí MStest.exe.Další informace naleznete v tématu Jak: automatické spuštění testů z příkazového řádku pomocí MSTest a Možnosti příkazového řádku MSTest.exe.

Další významná změna je nový Prohlížeč testu.V aplikaci Visual Studio 2012, některá testovací okna, povědomá z předchozích verzích aplikace Visual Studio, mohou být zastaralá, jako například okno Zobrazení testu.Prohlížeč testu je navržen pro lepší podporu vývojářů a týmů, které začlenily jednotkové testu do svých praktik vývoje softwaru.Další informace naleznete v tématu Provedení testů jednotky s Test Explorer.

Problémy s kompatibilitou mezi Visual Studio 2010 SP1 a Visual Studio 2012

Zde jsou některé problémy, které je nutné brát na vědomí při migraci jednotkových testů mezi Visual Studio 2010 SP1 a Visual Studio 2012:

Funkcionalita jednotkových testů

Problém

Řešení

Seznamy testů (soubory .vsmdi) jsou ve Visual Studio 2012 zastaralé.

Nebude možné nadále vytvářet nové seznamy testů (soubory .vsmdi) nebo spustit seznamy testů z aplikace Visual Studio.

TipTip
Kategorie testů poskytují větší flexibilitu než seznamy testů z předchozích verzí aplikace Microsoft Visual Studio.S kategoriemi testů je možné použít logické operátory, pro spuštění testů z více kategorií nebo omezení spouštěných testů na určitou skupinu kategorií.Je také jednodušší přidat kategorie testů, jakmile jsou vytvářeny testovací metody, a není nutné udržovat seznamy testů poté, co jsou vytvořeny testovací metody.Při použití kategorií testů, není nutné vrátit se změnami a rezervovat soubor <solution name>.vsmdi, který udržuje seznamy testů.Další informace naleznete v tématu Definování kategorie zkušební testy skupiny.

Soukromé přístupové objekty jsou ve Visual Studio 2012 zastaralé.

V předchozích verzích aplikace Visual Studio, bylo možné použít Publicize pro určení vnitřního programového rozhraní (API) a vytvořit veřejné rozhraní API, které bylo možné volat v testech, a to by zase volalo vnitřní API produktu.Poté bylo možné využít generování kódu pro vytvoření pahýlů testů a vygenerování útržků kódu uvnitř těchto pahýlů.

Není nadále možné vytvářet soukromé přístupové objekty.

  • Visual Studio 2010 projekty testů je možné zkompilovat a pracovat s nimi ve Visual Studio 2012.Sestavení bude obsahovat výstupní varování.

  • Pokud je stále potřeba testovat vnitřní rozhraní API, nabízí se tyto možnosti:

    • Použití třídy PrivateObject, pro pomoc v přístupu k soukromému a vnitřnímu rozhraní API kódu.Nachází se v sestavení Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll.

    • Vytvořit rámec reflexe, který by mohl reflektovat kód, pro přístup k internímu nebo soukromému rozhraní API.

    • Pokud je kód, ke kterému se pokoušíte získat přístup, interním kódem, bude pravděpodobně možné získat přístup k rozhraní API pomocí InternalsVisibleToAttribute, takže testovací kód může mít přístup k internímu rozhraní API.

Dopad testu je odebrán

Sdílení výsledků prostřednictvím protokolů TRX z Průzkumníka testu.

TRX protokoly je stále možné získat z příkazového řádku i aplikace Team Build.

Průchod kódem s nativní C++ jednotky testy

Při testování částí C++ selže a je povolen průchod kódem, je bez zásobníku při selhání.

Řešením je spustit testy jednotky C++ bez Průchod kódem a získat atribut callstack k identifikaci problému.

Viz také

Koncepty

Visual Studio 2012 kompatibility

Ověření kódu pomocí zkoušky jednotky

Upgrade z dřívější verze aplikace Visual Studio zkoušky

Inovace z Visual Studio 2010 kódované zkoušky uživatelského rozhraní