Changes between Version 7 and Version 8 of Documentatie/Ontwikkelaar/Omgeving/Unittests
- Timestamp:
- 08/01/22 10:10:25 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Documentatie/Ontwikkelaar/Omgeving/Unittests
v7 v8 7 7 = Unit tests = 8 8 9 == OpenAC 3 == 10 11 == OpenAC 2 / Python == 12 9 13 OpenAC heeft een grote verzameling ''unit tests'' om de functionaliteit van het programma te testen. Hierbij wordt vooral de algoritmische- en data-kant van het programma getest. Er wordt niet stilgestaan bij de user interface (op enkele puntjes na). 10 14 11 == Unit Tests Uitvoeren==15 === Unit Tests Uitvoeren === 12 16 13 17 In de {{{development/}}} branch en releases vanaf versie 2.000 staat er in de bovenste directory van OpenAC een file {{{unittests.py}}}. Dit is het "aandrijf" script van de unittests voor het gehele programma. Het kan worden opgestart vanaf de command-line als ieder ander Python programma: … … 31 35 Er zit een handvol verwachte failures in de unittests, waar OpenAC dingen niet doet zoals we het verwachten (in bijzondere randgevallen). Errors geven aan dat er een probleem is in de OpenAC code die niet goed wordt afgevangen. Errors in de unittests kunnen direct als defect worden gerapporteerd in het [/newticket tickets systeem]. 32 36 33 === Tests Selecteren===37 ==== Tests Selecteren ==== 34 38 35 39 De tests van de adaptaties, desktop-laag, includes, kern en logica zijn allemaal afzonderlijk te selecteren met de opties `--with-*` (bijvoorbeeld `--with-include`). Hiermee zijn de grote groepen tests aan of uit te zetten. Met `--enable-all` worden alle tests aangezet. … … 54 58 }}} 55 59 56 == Unit Tests Schrijven==60 === Unit Tests Schrijven === 57 61 58 62 Unit tests worden traditioneel opgeslagen in een bestand {{{unittests.py}}} in de desbetreffende directory. We streven ernaar om alle kernmodules een pakket unit tests te geven. Daarnaast hebben de directories {{{include/}}} en {{{logica/}}} tests '''en''' de adaptaties kunnen hun eigen unit tests hebben om lokale functionaliteit te testen. … … 78 82 Voor volledige documentatie zie [http://docs.python.org/library/unittest.html de Python documentatie voor de unittest module]. 79 83 80 == Unit Test Coverage==84 === Unit Test Coverage === 81 85 82 86 In 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.