Automatické testování: Porovnání verzí
| Řádek 39: | Řádek 39: | ||
./tester.sh -o http://localhost/freenetis admin 123456 | ./tester.sh -o http://localhost/freenetis admin 123456 | ||
| − | === Argumenty | + | === Argumenty testovacího skriptu === |
$ ./tester.sh --help | $ ./tester.sh --help | ||
| Řádek 54: | Řádek 54: | ||
== Úprava testovaných informací == | == Úprava testovaných informací == | ||
| + | |||
| + | Automaticky vygenerované testovací hodnoty nejsou pro testování dostatečné, proto je vhodné doplnit některé další hodnoty. | ||
| + | |||
| + | Postupy uvedu na příkladu modelu, v konfiguračním souboru nalezněte příslušný subjekt (dle názvu tagu a atributu jména). | ||
| + | |||
| + | '''Model po automatickém vygenerování:''' | ||
| + | |||
| + | <model name="test"> | ||
| + | <method name="testovaci_funkce" autogenerate="on"> | ||
| + | <attributes> | ||
| + | <attribute name="user_id" default_value="" /> | ||
| + | <attribute name="filter_values" default_value="array()" /> | ||
| + | </attributes> | ||
| + | <values> | ||
| + | <input> | ||
| + | <param value="" /> | ||
| + | <param value="array()" /> | ||
| + | </input> | ||
| + | </values> | ||
| + | </method> | ||
| + | </model> | ||
| + | |||
| + | Velmi důležitý je atribut metody '''autogenerate''', pokud provedete změny v modelu a nenastavíte jej na hodnotu '''off''' změny se při spuštění testování zahodí. | ||
| + | |||
''Poznámka: V celém návodu je uvažována cesta k freenetisu odvozená z [[Instalace Freenetis]]'' | ''Poznámka: V celém návodu je uvažována cesta k freenetisu odvozená z [[Instalace Freenetis]]'' | ||
Verze z 16. 6. 2011, 07:17
Automatické testování slouží jako zpětná kontrola provedených akcí vývojáře.
Obsah
Architektura testů
Testy jsou zcela automatizované (programátor nemusí testy programovat, ale jen dodávat data k jejich testovaní) a automaticky přizpůsobitelně změnám ve zdrojových kódech.
Testy umožňují kontrolovat modely, helpery a controllery, ostatní části systému jsou kontrolovány pouze na jejich syntaktickou správnost.
Testy oproti unit testům neporovnávají výsledné hodnoty daných funkcí ale pouze ověřují zda-li neskončil běh chybou.
Testy jsou podporovány na *unix operačních systémech.
Načtení informací o zdrojových kódech
Načtení informací o zdrojových kódech probíhá automaticky pomocí skriptu, který prochází všechny testované subjekty a získává z nich data nutná k volání rutin subjektů. Tyto data jsou ukládána do XML dokumentu (/application/vendors/unit_tester/unit_testing_config.xml).
Instalace testů
Instalace potřebných knihoven:
sudo apt-get install curl perl libxml-writer-perl libxml-dom-perl
Přidělení práv:
cd /var/www/freenetis chmod +x ./application/vendors/unit_tester/tester.sh
Spuštění testů
Upozornění: Testy spouštějte pouze na lokálním vývojovém serveru!
cd /var/www/freenetis/application/vendors/unit_tester ./tester.sh <URL> <LOGIN_NAME> <PASSWORD>
Doba běhu všech testů na Intel Core i5 2.53GHz s Ubuntu 11.04 je cca 4 minuty.
Příklad s argumenty:
./tester.sh -o http://localhost/freenetis admin 123456
Argumenty testovacího skriptu
$ ./tester.sh --help
Script for testing FreeNetIS
USAGE: tester.sh [options] URL username password
Options:
-o, --open-browser Opens browser with models or helpers errors
automatically, after error detection.
-s, --skip-syntax Skip syntax check of all files
-m, --skip-models Skip test of models
-h, --skip-helpers Skip test of helpers
-c, --skip-controllers Skip test of controllers
Úprava testovaných informací
Automaticky vygenerované testovací hodnoty nejsou pro testování dostatečné, proto je vhodné doplnit některé další hodnoty.
Postupy uvedu na příkladu modelu, v konfiguračním souboru nalezněte příslušný subjekt (dle názvu tagu a atributu jména).
Model po automatickém vygenerování:
<model name="test">
<method name="testovaci_funkce" autogenerate="on">
<attributes>
<attribute name="user_id" default_value="" />
<attribute name="filter_values" default_value="array()" />
</attributes>
<values>
<input>
<param value="" />
<param value="array()" />
</input>
</values>
</method>
</model>
Velmi důležitý je atribut metody autogenerate, pokud provedete změny v modelu a nenastavíte jej na hodnotu off změny se při spuštění testování zahodí.
Poznámka: V celém návodu je uvažována cesta k freenetisu odvozená z Instalace Freenetis