Testen

Uit EekBoek
Versie door Sbouwhuis (overleg | bijdragen) op 16 jan 2011 om 20:05 (Initiële versie)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springenNaar zoeken springen

Het is ./Build test die de tests draait. Dit testproces omvat het uitvoeren van alle t/*.t files (dus alle files met .t extensie in de t directory).

prove [ -l | -b ] [ -v ] t/testnaam.t 

De IVP tests zijn dus t/91_ivp_sqlite.t en t/92_ivp_postgres.t . Beide files maken gebruik van gemeenschappelijke code in 90_ivp_common.pl en data in t/ivp

Test framework

Er is een test framework waarmee het eenvoudig is om functionele tests uit te voeren. Je zet de bekende vier bestanden in een directory, voegt een bestandje "tests.eb" toe en het framework zorgt ervoor dat de administratie wordt aangemaakt en de tests gedraaid. De tests worden geacht rapporten te produceren die dan worden gecontroleerd aan de hand van meegeleverde referentie-rapporten.

Bijvoorbeeld:  t/admtest_btw.t

t/admtest_btw/eekboek.conf

 t/admtest_btw/mutaties.eb  t/admtest_btw/opening.eb

t/admtest_btw/relaties.eb

 t/admtest_btw/schema.dat  t/admtest_btw/tests.eb  t/admtest_btw/ref/btwall1.txt  t/admtest_btw/ref/btwall2.txt

De eigenlijke test file is  t/admtest_btw.t en die bevat enkel:  our $tag = "admtest_btw";  our $dbdriver = "postgres";  

# SQLite cannot import 

 unshift( @INC, "t" ) if -d "t";  require " admtest_common.pl";

De tests.eb bevat:  btwaangifte --output=btwall1.txt  export --file=foo.ebz --single --nototals  import --file=foo.ebz  btwaangifte --output=btwall2.txt

De aangemaakte rapporten worden vergeleken met de referentie-rapporten:  t/admtest_btw/ref/btwall1.txt  t/admtest_btw/ref/btwall2.txt

De uitvoer van "prove -b -v t/admtest_btw.t" :  t/admtest_btw.t ..  1..12  ok

1 - use IPC::Run3;  ok
2 - writable output dir  ok
3 - file is present: eekboek.conf  ok
4 - file is present: schema.dat  ok
5 - file is present: opening.eb  ok
6 - file is present: relaties.eb  ok
7 - file is present: mutaties.eb  ok
8 - file is present: tests.eb  ok
9 - initialise database  ok
10 - running tests  ok
11 - verification: btwall1.txt  ok
12 - verification: btwall2.txt  ok
All tests successful. 

 Files=1, Tests=12, ...  Result: PASS --

De tests worden geacht rapporten te produceren die dan worden gecontroleerd aan de hand van meegeleverde referentie-rapporten. Bijvoorbeeld:

t/admtest_btw.t
t/admtest_btw/eekboek.conf
t/admtest_btw/mutaties.eb
t/admtest_btw/opening.eb
t/admtest_btw/relaties.eb
t/admtest_btw/schema.dat
t/admtest_btw/tests.eb
t/admtest_btw/ref/btwall1.txt
t/admtest_btw/ref/btwall2.txt