Tests Ausführen

Tests sollten während der Entwicklungszeit händisch ausgeführt werden, im späteren Betrieb aber auch automatisiert ablaufen. Der händische Aufruf findet auf der Kommandozeilenebene statt, während für die Automatisierung der Einsatz eines Continous Integration (CI) Tools empfohlen wird. In diesem Fall Hudson-CI.

Manueller Aufruf von Tests

Der PHPUnit Test wird an der Konsole, per "phpunit" Kommando aufgerufen. Voraussetzung dafür ist, dass das PECL Paket PHPUnit installiert ist. Ein Test wird stets aus dem Ordner der Applikation heraus aufgerufen, damit die Klassennamen zum angegebenen Pfad passen:.
z.B.:
~/redspark/application/RedSparkBlog/latest$ phpunit RedSparkBlog/RsModule/Blog/Test/Suite.php

Ein fehlgeschlagener Test bedeutet nicht zwangsläufig einen Fehler im System. Vielmehr kann der Fehler auch durch die Testumgebung selbst ausgelöst werden, da z.B. der Request gegen ein Controller_Request_Cli Objekt ausgetauscht wird. Der Einsatz eines Debuggers wie X-Debug kann gerade im Test-Umfeld sehr hilfreich sein.

Integration in Hudson

Ein ANT-Build Script für Redspark Projekte ist zurzeit in Arbeit. Bislang können Projekte nur als Freestyle-Projekte angelegt werden, in welchem Bash-Befehle zum Einsatz kommen.

Source-Code-Management

Hier wird das Redspark Grundsystem, sowie die zu testende App und benötigte Referenz-Apps angegeben:

Repository URL: http://svn.redsparkframework.com/framework/base/trunk
Lokales Modulverzeichnis: .

Repository URL: http://svn.mypage.de/apps.myapp/trunk
Lokales Modulverzeichnis: application/MyApp/latest

Buildverfahren

 # Install
    
    chmod 777 temp log htdocs/static
    
    chmod -R 777 application/MyApp/data
    
    
    
    # Develop.ini
    
    echo "[Libraries]n" > config/develop.ini
    
    echo "tPHPUnit = "3.4.5";n" >> config/develop.ini
    
    echo "[Database]n" >> config/develop.ini
    
    echo "thost = "localhost";n" >> config/develop.ini
    
    echo "tusername = "user";n" >> config/develop.ini
    
    echo "tpassword = password";n" >> config/develop.ini
    
    echo "[Ini]n" >> config/develop.ini
    
    echo "tmemory_limit = "512M";n" >> config/develop.ini
    
    echo "tmax_execution_time = "360";n" >> config/develop.ini
    
    echo "[Domains]n" >> config/develop.ini
    
    echo "tredirect_to_main_host = 0;n" >> config/develop.ini
    
    echo "[UnitTest]n" >> config/develop.ini
    
    echo "tselenium_url = "http://localhost";n" >> config/develop.ini
    
    
    
    # Bootstrapping
    
    echo "[Bootstrap]n" > config/bootstrap.ini
    
    echo "tsite_is_live = false;n" >> config/bootstrap.ini
    
    echo "[Domains]n" >> config/bootstrap.ini
    
    echo "tdefault = "MyApp/latest";n" >> config/bootstrap.ini
    
    
    
    # PHPUnit
    
    cd library/phpunit/3.4.5
    
    rm_require_once.sh
    
    cd $WORKSPACE
    
    
    
    # Folder for test results
    
    if [ ! -d temp/clover ]; then mkdir temp/clover; fi
    
    if [ ! -d htdocs/static/coverage ]; then mkdir htdocs/static/coverage; fi
    
    
    
    # Unittest
    
    cd application/MyApp/latest
    
    #phpunit --coverage-clover ../../../temp/coverage.xml --coverage-html ../../../htdocs/static/coverage --log-xml ../../../temp/junit.xml MyApp/Test/Suite.php
    
    phpunit --log-xml ../../../temp/junit.xml MyApp/Test/Suite.php
    
    
    
    #phpcs --standard=Redspark Redspark/*.php --report=checkstyle --report-file=../../../temp/checkstyle.xm
 


Selenium + Hudson

Auf Linux Systemen ist es möglich, einen Selenium-Server mit einem Firefox zu installieren, auch wenn kein Bildschirm an den Rechner angeschlossen ist. Ein schönes Tutorial dazu findet man auf http://www.alittlemadness.com/2008/03/05/running-selenium-headless/.

Kuborgh GmbH

Hamburg 040 819 773 770 Köln 0221 276 66 96 info@kuborgh.de www.kuborgh.de

RedSpark Community

RedSpark Community

Community Website
RedSpark Apps

RedSpark Apps

Zur Übersicht
RedSpark Download

RedSpark Basispaket

Zum Download
Key facts