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