Changes between Version 3 and Version 4 of Documentatie/Ontwikkelaar/Omgeving/Unittests


Ignore:
Timestamp:
10/23/12 11:34:30 (14 years ago)
Author:
adriaan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentatie/Ontwikkelaar/Omgeving/Unittests

    v3 v4  
    7474 
    7575Voor volledige documentatie zie [http://docs.python.org/library/unittest.html de Python documentatie voor de unittest module]. '''NB.''' OpenAC gebruikt Python 2.5 en de huidige versie van de documentatie is voor Python 2.7, dus let op de "''Since 2.6''" en dergelijke compatibiliteits-informatie. 
     76 
     77== Unit Test Coverage == 
     78 
     79In principe zouden de unittests 100% van de code-base testen. In de praktijk gaat dat niet lukken, want je hebt altijd wat platform-specifieke code die op je test-platform niet uitgevoerd gaat worden. Maar we streven, langzaam, naar volledige test-coverage. 
     80 
     81Test-coverage kan je meten met het `coverage` tool, dat je via easy-install of een andere Python installatiebron kunt verkrijgen. Voorlopig kijken we vooral naar de test-coverage in de `include/` directory. Met dit eerste commando voer je de unittests voor de includes uit, waarbij je de coverage voor de directory include gaat meten (zonder `--source` gaat 'ie '''alles''' meten, dat is langzaam en niet zo interessant te weten dat de OpenAC tests niet alles in SQLAlchemy raken). Het tweede commando drukt informatie af over wat er allemaal geraakt is, en vooran (`-m`) welke regels code niet zijn uitgevoerd (dus ook niet getest). 
     82 
     83{{{ 
     84coverage run --source include unittests.py --with-include 
     85coverage report -m 
     86}}} 
     87 
     88Uitvoer van coverage in deze vorm geeft je een filenaam, dekkingsgraad, en een lijst van gemiste regels: 
     89 
     90{{{ 
     91include/encoding             56      6    89%   35-42, 47-48 
     92include/files                84     42    50%   29-46, 55-63, 92-94,  
     93    107-128, 165, 182-196, 226-232 
     94}}} 
     95 
     96De dekking in de file `encoding.py` is behoorlijk goed, en een korte inspectie leert dat de gemiste regels 35-42, 47 en 48 allemaal Windows- of Mac-specifiek zijn (en deze test is gedraaid onder Linux). Bij `files.py` daarentegen is de dekking niet zo goed. Regels 29-46 betreffen de functie `homedir()`, die dus (in development r24152) helemaal niet gebruikt of getest wordt. 
     97 
     98Homepage van [http://nedbatchelder.com/code/coverage/ coverage].