Automatické testování: Porovnání verzí

Z Freenetis Wiki
Přejít na: navigace, hledání
Řádek 39: Řádek 39:
 
  ./tester.sh -o http://localhost/freenetis admin 123456
 
  ./tester.sh -o http://localhost/freenetis admin 123456
  
=== Argumenty testů ===
+
=== 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.

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