dynamisch Suiten einbinden mit PHPunit

2008 11 September

Es gibt zwei Möglichkeiten, wie man die einzelnen Testssuiten in die AllTests einbinden kann. Einmal statisch per Hand, das hat den Vorteil, dass man genau steuern kann welche Suiten aufgerufen werden. Nachteil ist man muss das ganze jedesmal machen und kann auch leicht mal eine Suite vergessen.

public static function suite() {
$suite = new PHPUnit_Framework_TestSuite('AllTests');
$dirs = glob(dirname(__FILE__).'/*', GLOB_ONLYDIR);
foreach ($dirs as $dir) {
require_once('user/AllTests.php');
$suite->addTestSuite(User_AllTests;
}
return $suite;
}

oder man macht das ganze dynamisch, dann wird auch keine Testsuite vergessen und man muss sich um nichts weiter kümmern.

public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('Global AllTests');
$dirs = glob(dirname(__FILE__).'/*', GLOB_ONLYDIR);
foreach ($dirs as $dir) {
$classname = ucfirst(basename($dir));
require_once($dir.'/AllTests.php');
$method = new ReflectionMethod($classname.'_AllTests', 'suite');
$object = $method->invoke(null);
$suite->addTestSuite($object);
}
return $suite;
}

Bearbeiten

sfTCPDFPlugin mit symfony 1.1

2008 6 September

Standartmäßig läuft das sfTCPDFPlugin leider nicht mit symfony 1.1, aber mit ein paar kleinen Änderungen in der config kann man das Problem leicht lösen. Das Problem ist folgende Zeile in der config/config.php:

$request = sfContext::getInstance()->getRequest();
$url = 'http'.($request->isSecure() ? 's' : '').'://'.$request->getHost(). '/';

Diese einfach löschen oder auskommentieren. Die Variable $url muss noch gesetzt werden. Habe Sie einfach mal auf "http:// " gesetzt, da ich nicht genau weiß was damit passiert. Es läuft auf jeden Fall.


Bearbeiten

phpunit und symfony 1.1

2008 3 September

Um phpunit unter symfony 1.1 zum laufen zu bringen. Geht man zunächst wie hier beschrieben vor. Man muss jetzt lediglich folgende Zeilen ersetzen, da symfony 1.1 jetzt eine neue Configuration Klasse hat.

define(’SF_ROOT_DIR’, realpath(dirname(_file_).’/../’));
define(’SF_APP’, ‘frontend’);
define(’SF_ENVIRONMENT’, ‘test’);
define(’SF_DEBUG’, true);

require_once SF_ROOT_DIR.DIRECTORY_SEPARATOR.’apps’.
DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.
‘config’.DIRECTORY_SEPARATOR.’config.php’;

ersetzen durch

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'test', true);
sfContext::createInstance($configuration);

Das wars schon.


Bearbeiten

Buildix - Continous Integration Tool

2008 29 August

Buildix ist ein komplettes Continous Integration Tool von Thoughtworks. Es beinhaltet:

  • Subversion
  • Trac
  • CruiseControl
  • Mingle

Buildix ist erhätlich als LiveCD, VMWare oder per apt Installation auf debian. Man hat innerhalb von Minuten ein laufendes Trac mit Subversion und kann ganz leicht über die Oberfläche Projekte, Repostories und User anlegen. Schon alleine das ist ein Traum, nach vielen mühsamen und zeitaufwändigen Versuchen Trac zu installieren.

Buildix ansich macht nicht besonders viel, es ist nur ein Webfrontend mit dem sich leicht neue Projekte anlegen lassen.


Bearbeiten

Agile Versionskontrolle

2008 25 August

Ich bin über eine sehr interessante Lektüre gestolpert.
Hier wird ziemlich genau beschrieben wie man auf leichtem Wege stabile Release Zyklen erhalten auch in größeren Teams erhalten kann.
Wichtige Punkte sind:

  • der trunk ist immer stabil, alles ist getestet und ist jederzeit release fähig.
  • die Entwicklerteams arbeiten in branches, die sie täglich mit dem
    trunk mergen sollten, um größerer Konflikte zu vermeiden.
  • Hier findet ihr das besagte Dokument Agile version control with multiple teams


    Bearbeiten
    Torsten Zander


     RSS Feed abonnieren

    Twitter  Auf Twitter folgen

    Posts

    Blogrolls