DTest är ett ramverk testning, liknande standard unittest paket som tillhandahålls av Python. Den värdehöjande för DTest, dock att testexekvering träs genom användning av eventlet paketet. Den DTest Paketet innehåller också begreppet "beroenden" mellan tester och testfixturer - alltså "D" i "DTest" - som garanterar att testerna inte löpa förrän motsvarande inrätta testfixturer har slutförts och att den riva testfixturer inte löpa förrän alla tillhörande test har slutförts. Beroenden kan också användas för att säkerställa att testerna som kräver tillgång till vissa funktioner inte köra om testerna av den specifika funktionalitet misslyckas.
Skriva test
De enklaste testprogram är enkla funktioner med namn som börjar med "test", ligger i Python källfilerna vars namn också börja med "test." Det är inte ens nödvändigt att importera någon del av ramverket DTest. Om test samlas i klasser, men eller om man önskar använda de mer avancerade funktionerna i DTest, en enkel från dtest import * är nödvändigt. Detta gör tillgängliga DTestCase klass - som bör förlängas med alla klasser som innehåller tester - liksom sådana inredare somskip ochnottest.
Tester kan utföras med hjälp av standard Python hävda uttalande; Men ett antal allmännyttiga rutiner finns i dtest.util modulen (även säker för import *). Många av dessa allmännyttiga rutiner har namn som liknar metoderna för unittest.TestCase - t.ex. dtest.util.assert_dict_equal () är analogt med unittest.TestCase.assertDictEqual ().
Matcher Test
Ramverket DTest stöder testfixturer - upprätta och riva funktioner - på klass, modul, och paketnivå. Paket-nivå fixturer består av funktioner som heter Inställningar () och nedkoppling () finns i "__init__.py" filer; På samma sätt modulnivå fixturer består av funktioner samed Setup () och nedkoppling () inom moduler som innehåller testfunktioner och klasser av testmetoder. På klassnivå, kan klasserna innehålla setUpClass () och tearDownClass () klassmetoder (eller statiska metoder), som kan utföra inrätta och riva ner för varje klass. I samtliga fall är Setup () funktioner och sättet setUpClass () utförs före något av testerna i samma omfattning; På samma sätt är efter alla tester vid en given omfattning har utfört, motsvarande tearDownClass () metoden och nedkoppling () funktioner utförs.
Ramverket DTest stöder också per test Setup () och nedkoppling () funktioner eller metoder, som drivs före och efter varje tillhörande test. För klasser som innehåller tester, har varje test automatiskt Setup () och nedkoppling () metoder för klassen i samband med dem; Men för alla tester, dessa armaturer kan explicit (eller åsidosättas från klassen standard). Tänk dig följande exempel:
istest
def test_something ():
& Nbsp; # Test något här
& Nbsp; pass
@ Test_something.setUp
def something_setup ():
& Nbsp; # få allt ställa upp redo att gå ...
& Nbsp; pass
@ Test_something.tearDown
def something_teardown ():
& Nbsp; # Städa upp efter oss
& Nbsp; pass
I detta exempel är nödvändigt föregående test_something en DTest dekoratör (annat ännottest) (); Här använde viistest, men några andra tillgängliga DTest dekoratör kan användas här. Detta gör @ test_something.setUp och @ test_something.tearDown dekoratörer tillgängliga. (För något analogt i standarden Python, kolla in den inbyggdaproperty dekoratör.)
Löpning Test
Köra tester med ramverket DTest är ganska rättfram. Ett skript som kallas run-dtests finns. Som standard är aktuell katalog skannas för alla moduler eller paket vars namn börjar med "test"; sökningen recurses också ner genom alla paket. (A "paket" definieras som en katalog som innehåller "__init__.py".) När alla test upptäcks, de exekveras sedan, och resultaten av de tester som avges till standard ut.
Flera kommandoradsalternativ finns för att styra beteendet hos run-dtests. Till exempel "--no-skip" alternativet kommer att orsaka run-dtests att köra alla tester, även de dekoreras medskip dekoratör, och "-d" alternativet gör run-dtests att söka en viss katalog, snarare än den aktuella katalogen. För en fullständig lista med alternativ, använd "-h" eller "--help" alternativet.
Köra run-dtests från kommandoraden är inte det enda sättet att köra tester, dock. Run-dtests skript är ett mycket enkelt skript som tolkar kommandoradsalternativ (med hjälp av OptionParser konstruerad av dtest.optparser () funktion), omvandlar dessa alternativ till en uppsättning sökord argument (med dtest.opts_to_args ()), sedan passerar dessa sökord argument till dtest.main funktion (). Användare kan använda dessa funktioner för att bygga upp samma funktionalitet med användarspecifika tillägg, såsom att tillhandahålla en alternativ DTestOutput instans att styra hur testresultaten ska visas, eller ger en alternativ metod för att styra vilka tester hoppas över. . Se dokumentations strängar för dessa funktioner och klasser för mer information
Krav :
- Python
Kommentarer hittades inte