Sdílet prostřednictvím


Postupy: Vynucené zastavení testů po určité době běhu

Můžete nastavit časové limity, které budou splňovat spuštění testu nebo testu.Můžete to provést, například pokud pracujete v testovací laboratoři a potřebujete test spustit dokončete podle určité denní dobu.

Jiný scénář pro použití časových limitů je reagovat kódu.Pokud test zaznamená části kódu, který neodpovídá, umožní používání vypršel časový limit testu a vypršení časového limitu test spustit jednotlivé zkušební dokončit tak, aby test spustil můžete pokračovat v následných testů.

Chcete-li nastavit časové limity dvěma způsoby:

Nelze nastavit časové limity test pro typy konkrétní testu.Vypršení časových limitů test se nevztahuje na manuálních testů, ale test spustit časové limity jsou vždy v platnosti, i pro testů, které obsahují manuálních testů.

Nastavení časového omezení pro testy a testy má tyto efekty:

  • Po dobu trvání testu dosáhne její hodnotu časového limitu, testovacího běhu přerušena, i v případě, že nespustili některých testů.

  • Po dobu trvání jednotlivé zkušební dosáhne její hodnotu časového limitu, zastaví provádění tohoto testu a test je označena jako časový limit.Test spustil pokračuje dalšími následné test.

Jak ovlivňují inicializace metody otestovat časové limity

Mohou zahrnovat testu AssemblyInitializeAttribute metody a ClassInitializeAttribute metody.Pokud tyto metody jsou definovány, budou mít omezené množství čas na dokončení a poté spustí první test do testovacího běhu.

Množství času, který pomocí metody inicializace je přidán do množství času, který používá první test.Můžeme to express jako vzorec, který používá tyto podmínky:

  • Dt = celková doba trvání

  • Dr = množství času, který spouští test

  • I = inicializace metody pro sestavení a třídy

  • Tn = test, který je spuštěn v náhodných pozici v rámci testu

  • T1 = test, který je spuštěn v první pozici v rámci testu

Platí pro všechny testy po první zkoušce:

Dt**[Tn] = Dr[Tn]**

Ale Poznámka: následující případ:

Dt**[T1] = Dr[T1] + D[I]**

První test, který spouští může mít hodnotu časového limitu-test, který je přiřazen.V takovém případě čas inicializace spočítá směrem k časovém limitu, která je uložena na první test, a proto může dojít k zkoušky selhání.

[!POZNÁMKA]

Toto omezení může způsobit selhání pouze první test.Následné testy do testovacího běhu nejsou ovlivněny.

Pokud váš test spustit zahrnuje metody inicializace, může toto omezení obejít následujícím způsobem: vztahují na každý testovací časový limit, který je větší než součtem očekávaný časy provedení pro metodu testování a jakékoli metody inicializace.Je třeba provést pro každý test.Vzhledem k tomu, že testování částí není zárukou pořadí, ve které testů paměti, nemůžete předpovědět, zkoušky, která se spouští jako první.

Jak ovlivňují vyčištění metody otestovat běhu časové limity

Mohou zahrnovat testu AssemblyCleanupAttribute metody a ClassCleanupAttribute metody.Po dokončení těchto metod, spusťte test skončí.

Test spustil může mít hodnotu časového limitu přiřazen.Množství času, který je používán metodami vyčištění je přidán do celkové množství času, který je používán test spustil.Jinými slovy počty čas vyčištění směrem k časový limit, který jste vynucená pro test spustit jako celek a proto může způsobit testu vypršení časového limitu.

Nastavení časového limitu pro všechny testy

Tento postup zahrnuje vytvoření souboru nastavením testu.Doporučujeme vyhnout, pokud je to možné, protože vynutí, aby byla spouštěna starší framework, která je méně efektivní testů.

  1. Ve složce položky řešení vašeho řešení poklepejte na soubor s nastavením testu.Pokud nemáte soubor *.testsettings, klikněte pravým tlačítkem myši řešení a zvolte přidat položku, nastavení testu.

    Nastavení konfigurace se zobrazí dialogové okno.

  2. Zvolte testovat časové limity.

  3. Zkontrolujte zrušení testu jeho celkový čas provádění překročí-li:

  4. Nastavte testu hodnotu časového limitu v hodiny, minuty a sekundy.

  5. Zvolte Uložit a poté zvolte možnost Zavřít.

    Nastavit tento soubor s nastavením aktivní test.Zvolte Test > testování nastavení > nastavit souboru s nastavením testu.

Nastavit hodnotu časového limitu pro jednotlivé testy

  • Přidejte atribut časový limit pro každý test.Parametr je v milisekundách.Příklad:

    [TestMethod(), Timeout(80)]
    public void MyTestMethod()
    {
    // test code
    }
    
    <TestMethod(), Timeout(80)> _
    Public Sub MyTestMethod()
    ' test code
    End Sub
    

    Pro tento test pouze hodnotu, kterou jste nastavili přepíše hodnotu časového limitu-test nastavenou v nastavení testu.Hodnota časového limitu test spustit není ovlivněn.

Viz také

Úkoly

Postupy: Výběr aktivního nastavení testování v produktu Microsoft Visual Studio