Spouštění testů částí pomocí Průzkumníka testů

Pomocí Průzkumníka testů můžete spouštět testy jednotek ze sady Visual Studio nebo z projektů testů jednotek třetích stran. Pomocí Průzkumníka testů můžete také seskupit testy do kategorií, filtrovat seznam testů a vytvářet, ukládat a spouštět seznamy stop testů. Pomocí Průzkumníka testů můžete také ladit testy jednotek a v sadě Visual Studio Enterprise analyzovat pokrytí kódu.

Průzkumník testů může spouštět testy z více testovacích projektů v řešení a z testovacích tříd, které jsou součástí projektů produkčního kódu. Projekty testů můžou používat různé architektury testů jednotek. Pokud je kód pod testem napsaný pro .NET, lze testovací projekt napsat v libovolném jazyce, který také cílí na .NET bez ohledu na jazyk cílového kódu. Nativní projekty kódu C/C++ musí být testovány pomocí architektury testování jednotek jazyka C++.

Sestavení testovacího projektu

Pokud ještě nemáte v řešení sady Visual Studio nastavený testovací projekt, musíte nejprve vytvořit a sestavit testovací projekt.

Visual Studio obsahuje architektury microsoftu pro testování jednotek pro spravovaný i nativní kód. Průzkumník testů ale může také spustit libovolnou architekturu testování jednotek, která implementovala adaptér Průzkumníka testů. Další informace o instalaci rozhraní pro testování jednotek třetích stran najdete v tématu Instalace rozhraní pro testování jednotek třetích stran.

Spouštění testů v Průzkumníku testů

Když sestavíte testovací projekt, testy se zobrazí v Průzkumníku testů. Pokud Průzkumník testů není viditelný, zvolte Test v nabídce sady Visual Studio a pak zvolte Průzkumník testů (nebo stiskněte Ctrl + E, T).

Test Explorer

Test Explorer

Při spouštění, psaní a opětovném spuštění testů zobrazí Průzkumník testů výsledky ve výchozím seskupení projektů, oborů názvů a třídy. Způsob, jakým Průzkumník testů seskupuje vaše testy, můžete změnit.

Většinu práce s hledáním, uspořádáním a spouštěním testů můžete provádět na panelu nástrojů Průzkumníka testů.

Run tests from the Test Explorer toolbar

Run tests from the Test Explorer toolbar

Spouštění testů

Můžete spustit všechny testy v řešení, všechny testy ve skupině nebo sadu testů, které vyberete. Proveďte některou z následujících akcí:

  • Pokud chcete spustit všechny testy v řešení, zvolte ikonu Spustit vše (nebo stiskněte Ctrl + R, V).

  • Pokud chcete spustit všechny testy ve výchozí skupině, zvolte ikonu Spustit a v nabídce zvolte skupinu.

  • Vyberte jednotlivé testy, které chcete spustit, otevřete místní nabídku pro vybraný test a pak zvolte Spustit vybrané testy (nebo stiskněte Ctrl + R, T).

  • Pokud jednotlivé testy nemají žádné závislosti, které brání jejich spuštění v libovolném pořadí, zapněte paralelní spuštění testu v nabídce nastavení panelu nástrojů. To může výrazně zkrátit dobu potřebnou ke spuštění všech testů.

Spouštění testů po každém sestavení

Pokud chcete testy jednotek spustit po každém místním sestavení, otevřete ikonu nastavení na panelu nástrojů Průzkumníka testů a vyberte Spustit testy po sestavení.

Zobrazení výsledků testu

Při spouštění, psaní a opětovném spuštění testů zobrazí Průzkumník testů výsledky ve skupinách neúspěšných testů, úspěšných testů, přeskočených testů a nespouštět testy. V podokně podrobností v dolní části nebo na straně Průzkumníka testů se zobrazí souhrn testovacího spuštění.

Zobrazení podrobností testu

Pokud chcete zobrazit podrobnosti o jednotlivých testech, vyberte test.

Test execution details

Test execution details

V podokně podrobností testu se zobrazí následující informace:

  • Název zdrojového souboru a číslo řádku testovací metody.

  • Stav testu.

  • Uplynulá doba, kterou testovací metoda trvala ke spuštění.

Pokud test selže, zobrazí se také podokno podrobností:

  • Zpráva vrácená architekturou testování jednotek pro test.

  • Trasování zásobníku v době, kdy test selhal.

Zobrazení zdrojového kódu testovací metody

Pokud chcete zobrazit zdrojový kód pro testovací metodu v editoru sady Visual Studio, vyberte test a v nabídce klikněte pravým tlačítkem na příkaz Otevřít test (nebo stiskněte klávesu F12).

Seskupení a filtrování seznamu testů

Průzkumník testů umožňuje seskupování testů do předdefinovaných kategorií. Většina architektur testů jednotek, které běží v Průzkumníku testů, umožňuje definovat vlastní kategorie a páry kategorií a hodnot pro seskupení testů. Seznam testů můžete také filtrovat odpovídajícími řetězci s vlastnostmi testu.

Seskupení testů v seznamu testů

Průzkumník testů umožňuje seskupování testů do hierarchie. Výchozí seskupení hierarchie je Project, Namespace a potom Class. Pokud chcete změnit způsob uspořádání testů, zvolte tlačítko Test Explorer group button Seskupit podle a vyberte nová kritéria seskupení.

Group tests by category in Test Explorer

Můžete definovat vlastní úrovně hierarchie a seskupit podle státu a pak třídu například výběrem možnosti Seskupit podle v upřednostňovaném pořadí.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Průzkumník testů umožňuje seskupování testů do hierarchie. Výchozí seskupení hierarchie je Project, Namespace a potom Class. Pokud chcete změnit způsob uspořádání testů, zvolte tlačítko Test Explorer group button Seskupit podle a vyberte nová kritéria seskupení.

Group tests by category in Test Explorer

Můžete definovat vlastní úrovně hierarchie a seskupit podle státu a pak třídu například výběrem možnosti Seskupit podle v upřednostňovaném pořadí.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Skupiny Průzkumníka testů

Seskupit Popis
Doba trvání Seskupí testy podle doby provádění: Fast, Medium a Slow.
Kraj Seskupí testy podle výsledků spuštění: Neúspěšné testy, Přeskočené testy, Úspěšné testy, Nespustit
Cílová architektura Seskupí testy podle architektury, na které cílí projekty.
Obor názvů Seskupí testy podle obsahujícího oboru názvů.
Projekt Seskupí testy podle obsahujícího projektu.
Třída Seskupí testy podle obsahující třídy.

Vlastnosti

Vlastnost je obvykle dvojice název/hodnota kategorie, ale může to být také jedna kategorie. Vlastnosti lze přiřadit metodám, které jsou identifikovány jako testovací metoda v rámci testování jednotek. Architektura testování jednotek může definovat kategorie vlastností. Do kategorií vlastností můžete přidat hodnoty, abyste definovali vlastní páry názvu kategorie a hodnoty. Syntaxe pro určení kategorií vlastností a hodnot je definována architekturou testu jednotek.

Vlastnosti v rozhraní Microsoft Unit Testing Framework pro spravovaný kód

V architektuře testování jednotek Microsoftu pro spravované aplikace definujete dvojici vlastností název/hodnota v atributu TestPropertyAttribute . Testovací architektura obsahuje také tyto předdefinované vlastnosti:

Vlastnost Popis
OwnerAttribute Kategorie Vlastník je definována architekturou testování jednotek a vyžaduje, abyste zadali řetězcovou hodnotu vlastníka.
PriorityAttribute Kategorie Priority je definována architekturou testování jednotek a vyžaduje, abyste zadali celočíselnou hodnotu priority.
TestCategoryAttribute Atribut TestCategory umožňuje zadat kategorii testu jednotek.
TestPropertyAttribute Atribut TestProperty umožňuje definovat dvojici kategorií/hodnot vlastností.

Vlastnosti v rozhraní Microsoft Unit Testing Framework pro C++

Přečtěte si , jak používat rozhraní Microsoft Unit Testing Framework pro C++.

Vytváření vlastních seznamů stop

Můžete vytvořit a uložit seznam testů, které chcete spustit nebo zobrazit jako skupinu. Když vyberete seznam stop, testy v seznamu se zobrazí na nové kartě Průzkumníka testů. Test můžete přidat do více než jednoho seznamu stop.

Pokud chcete vytvořit seznam stop, zvolte jeden nebo více testů v Průzkumníku testů. V nabídce, která se zobrazí po kliknutí pravým tlačítkem myši, zvolte Přidat do seznamu skladeb Nový seznam stop>.

Create a playlist

Seznam stop se otevře na nové kartě Průzkumníka testů. Tento seznam stop můžete použít jednou a potom ho zahodit, nebo můžete kliknout na tlačítko Uložit na panelu nástrojů okna seznamu stop a pak vybrat název a umístění pro uložení seznamu stop.

Playlist opens in separate test explorer tab

Pokud chcete vytvořit seznam stop, zvolte jeden nebo více testů v Průzkumníku testů. Klikněte pravým tlačítkem myši a zvolte Přidat do seznamu skladeb>Nový seznam stop.

Pokud chcete otevřít seznam stop, zvolte ikonu seznamu stop na panelu nástrojů sady Visual Studio a v nabídce vyberte dříve uložený soubor seznamu stop.

Seznam stop můžete upravit tak, že kliknete pravým tlačítkem myši na jakýkoli test a pomocí možností nabídky ho přidáte nebo odeberete ze seznamu stop.

Počínaje sadou Visual Studio 2019 verze 16.7 můžete na panelu nástrojů zvolit tlačítko Upravit . Vedle testů se vedle testů zobrazí zaškrtávací políčka zobrazující, které testy jsou zahrnuté a vyloučené v seznamu stop. Teď skupiny upravte podle potřeby.

Edit Playlist button

Můžete také zaškrtnout nebo zrušit zaškrtnutí políček nadřazených skupin v hierarchii. Tato akce vytvoří dynamický seznam stop, který vždy aktualizuje seznam stop na základě testů, které jsou v dané skupině. Pokud například umístíte značku zaškrtnutí vedle třídy, všechny testy přidané z této třídy se stanou součástí tohoto seznamu stop. Pokud odstraníte test z této třídy, odebere se ze seznamu stop. Další informace o pravidlech získáte tak, že seznam stop uložíte tlačítkem Uložit na panelu nástrojů a otevřete soubor .playlist vytvořený na disku. Tento soubor obsahuje seznam všech pravidel a jednotlivých testů, které tvoří seznam stop.

Playlist xml file

Pokud chcete vytvořit seznam stop pro vlastnosti, použijte pro MSTest následující formát.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Pro xUnit použijte následující formát. Ujistěte se, že je mezi vaším TestCategory jménem a znakem [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
	    </Rule>
	</Rule>
  </Rule>
</Playlist>

Můžete vytvořit a uložit seznam testů, které chcete spustit nebo zobrazit jako skupinu. Když vyberete seznam stop, testy v seznamu se zobrazí na nové kartě Průzkumníka testů. Test můžete přidat do více než jednoho seznamu stop.

Pokud chcete vytvořit seznam stop, zvolte jeden nebo více testů v Průzkumníku testů. V nabídce, která se zobrazí po kliknutí pravým tlačítkem myši, zvolte Přidat do seznamu skladeb Nový seznam stop>.

Create a playlist

Seznam stop se otevře na nové kartě Průzkumníka testů. Tento seznam stop můžete použít jednou a potom ho zahodit, nebo můžete kliknout na tlačítko Uložit na panelu nástrojů okna seznamu stop a pak vybrat název a umístění pro uložení seznamu stop.

Playlist opens in separate test explorer tab

Pokud chcete vytvořit seznam stop, zvolte jeden nebo více testů v Průzkumníku testů. Klikněte pravým tlačítkem myši a zvolte Přidat do seznamu skladeb>Nový seznam stop.

Pokud chcete otevřít seznam stop, zvolte ikonu seznamu stop na panelu nástrojů sady Visual Studio a v nabídce vyberte dříve uložený soubor seznamu stop.

Seznam stop můžete upravit tak, že kliknete pravým tlačítkem myši na jakýkoli test a pomocí možností nabídky ho přidáte nebo odeberete ze seznamu stop.

Počínaje sadou Visual Studio 2019 verze 16.7 můžete na panelu nástrojů zvolit tlačítko Upravit . Vedle testů se vedle testů zobrazí zaškrtávací políčka zobrazující, které testy jsou zahrnuté a vyloučené v seznamu stop. Teď skupiny upravte podle potřeby.

Edit Playlist button

Můžete také zaškrtnout nebo zrušit zaškrtnutí políček nadřazených skupin v hierarchii. Tato akce vytvoří dynamický seznam stop, který vždy aktualizuje seznam stop na základě testů, které jsou v dané skupině. Pokud například umístíte značku zaškrtnutí vedle třídy, všechny testy přidané z této třídy se stanou součástí tohoto seznamu stop. Pokud odstraníte test z této třídy, odebere se ze seznamu stop. Další informace o pravidlech získáte tak, že seznam stop uložíte tlačítkem Uložit na panelu nástrojů a otevřete soubor .playlist vytvořený na disku. Tento soubor obsahuje seznam všech pravidel a jednotlivých testů, které tvoří seznam stop.

Playlist xml file

Pokud chcete vytvořit seznam stop pro vlastnosti, použijte pro MSTest následující formát.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Pro xUnit použijte následující formát. Ujistěte se, že je mezi vaším TestCategory jménem a znakem [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
	    </Rule>
	</Rule>
  </Rule>
</Playlist>

Sloupce Průzkumníka testů

Skupiny jsou také k dispozici jako sloupce v Průzkumníku testů spolu s vlastnostmi, trasování zásobníku, chybovou zprávou a plně kvalifikovaným názvem. Většina sloupců není ve výchozím nastavení viditelná a můžete přizpůsobit sloupce, které vidíte, a pořadí, ve kterém se zobrazují.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrování, řazení a změna uspořádání testovacích sloupců

Sloupce je možné filtrovat, řadit a měnit jejich uspořádání.

  • Pokud chcete filtrovat konkrétní vlastnosti, klikněte na ikonu filtru v horní části sloupce Vlastnosti.

    Column filter

  • Pokud chcete změnit pořadí sloupců, klikněte na záhlaví sloupce a přetáhněte ho doleva nebo doprava.

  • Pokud chcete sloupec seřadit, klikněte na záhlaví sloupce. Ne všechny sloupce je možné řadit. Můžete také řadit podle sekundárního sloupce tak, že podržíte klávesu Shift a kliknete na další záhlaví sloupce.

    Column sort

Sloupce Průzkumníka testů

Skupiny jsou také k dispozici jako sloupce v Průzkumníku testů spolu s vlastnostmi, trasování zásobníku, chybovou zprávou a plně kvalifikovaným názvem. Většina sloupců není ve výchozím nastavení viditelná a můžete přizpůsobit sloupce, které vidíte, a pořadí, ve kterém se zobrazují.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrování, řazení a změna uspořádání testovacích sloupců

Sloupce je možné filtrovat, řadit a měnit jejich uspořádání.

  • Pokud chcete filtrovat konkrétní vlastnosti, klikněte na ikonu filtru v horní části sloupce Vlastnosti.

    Column filter

  • Pokud chcete změnit pořadí sloupců, klikněte na záhlaví sloupce a přetáhněte ho doleva nebo doprava.

  • Pokud chcete sloupec seřadit, klikněte na záhlaví sloupce. Ne všechny sloupce je možné řadit. Můžete také řadit podle sekundárního sloupce tak, že podržíte klávesu Shift a kliknete na další záhlaví sloupce.

    Column sort

Hledání a filtrování seznamu testů

Filtry hledání v Průzkumníku testů můžete také použít k omezení testovacích metod v projektech, které zobrazíte a spustíte.

Když do vyhledávacího pole Průzkumníka testů zadáte řetězec a zvolíte Enter, v seznamu testů se vyfiltrují jenom testy, jejichž plně kvalifikované názvy obsahují řetězec.

Filtrování podle různých kritérií:

  1. Otevřete rozevírací seznam napravo od vyhledávacího pole.

  2. Zvolte nová kritéria.

  3. Zadejte hodnotu filtru mezi uvozovkami. Pokud chcete vyhledat přesnou shodu v řetězci místo obsahující shody, použijte místo dvojtečky (:)) znaménko rovná se (=).

Filter tests in Test Explorer

Filter tests in Test Explorer

Poznámka:

Vyhledávání nerozlišují malá a velká písmena a odpovídají zadanému řetězci s libovolnou částí hodnoty kritérií.

Kvalifikátor Popis
Kraj Vyhledá názvy kategorií Průzkumníka testů shody: neúspěšné testy, přeskočené testy, úspěšné testy.
Vlastnosti Vyhledá shodu v kategorii vlastností i hodnotě. Syntaxe pro určení kategorií vlastností a hodnot jsou definovány architekturou testu jednotek.
Plně kvalifikovaný název Vyhledá plně kvalifikovaný název testovacích oborů názvů, tříd a metod shody.
Projekt Vyhledá shodu v názvech testovacích projektů.
Cílová architektura Vyhledá shody v testovacích architekturách.
Obor názvů Vyhledá shody testovacích oborů názvů.
Třída Vyhledá shodu v názvech testovacích tříd.

Pokud chcete vyloučit podmnožinu výsledků filtru, použijte následující syntaxi:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Vrátí například FullName:"MyClass" - FullName:"PerfTest" všechny testy, které ve svém názvu obsahují "MyClass", s výjimkou testů, které v názvu obsahují také "PerfTest".

Analýza pokrytí kódu testu jednotek

Množství kódu produktu, který se ve skutečnosti testuje testy jednotek, můžete určit pomocí nástroje pokrytí editoru Visual Studio Code, který je k dispozici v edici Visual Studio Enterprise. Pokrytí kódu můžete spouštět u vybraných testů nebo u všech testů v řešení.

Spuštění pokrytí kódu pro testovací metody v řešení:

  • Klikněte pravým tlačítkem v Průzkumníku testů a vyberte Analyzovat pokrytí kódu pro vybrané testy.

Okno Výsledky pokrytí kódu zobrazuje procento bloků kódu produktu, které byly uplatněny řádkem, funkcí, třídou, oborem názvů a modulem.

Další informace najdete v tématu Použití pokrytí kódu k určení, kolik kódu se testuje.

Testovací klávesové zkratky

Testy je možné spouštět z Průzkumníka testů tak, že v editoru kódu kliknete pravým tlačítkem myši na test a vyberete Spustit test nebo použijete výchozí zástupce Průzkumníka testů v sadě Visual Studio. Některé klávesové zkratky jsou založené na kontextu. To znamená, že spouští, ladí nebo profilové testy na základě toho, kde je kurzor v editoru kódu. Pokud je kurzor uvnitř testovací metody, spustí se tato testovací metoda. Pokud je kurzor na úrovni třídy, spustí se všechny testy v této třídě. To je stejné i pro úroveň oboru názvů.

Časté příkazy Klávesové zkratky
TestExplorer.DebugAllTestsInContext Ctrl+R, Ctrl+T
TestExplorer.RunAllTestsInContext Ctrl+R, T
TestExplorer.RunAllTests Ctrl+R, A
TestExplorer.RepeatLastRun Ctrl+R, L

Poznámka:

Test nelze spustit v abstraktní třídě, protože testy jsou definovány pouze v abstraktních třídách a nejsou vytvořena instance. Chcete-li spustit testy v abstraktních třídách, vytvořte třídu, která je odvozena z abstraktní třídy.

Test zvukového upozornění

Průzkumník testů může po dokončení testovacího spuštění přehrát zvuk. Existují dva zvuky: jeden zvuk pro označení úspěšného testovacího běhu se všemi úspěšnými testy a druhý zvuk označující, že testovací běh byl dokončen s alespoň jedním neúspěšným testem. Tyto zvuky můžete nastavit ve výchozím dialogovém okně zvuku Windows 11. Tato funkce je dostupná od verze Visual Studio 2019 Update 16.9 Preview 3.

  1. Otevřete výchozí dialogové okno zvuku windows 11.
  2. Přejděte na kartu Zvuky .
  3. Najděte kategorii Microsoft Visual Studio. Zvolte zvuky Úspěšné testovací spuštění nebo Neúspěšné testovací spuštění a vyberte přednastavené zvuky nebo přejděte do vlastního zvukového souboru.
    Windows 11 sound dialog