SimpleTest má několik možností spuštění. Asi nejjednodušší je
napsat naprosto běžnou PHP třídu a jen na začátek přidat require_once
‚simpletest/autorun.php‘ – soubor obsahující test pak
stačí načíst v prohlížeči.
Jak jsem ale tvořil víc a víc testů v různých souborech, stal se
tento přístup málo pružným. Nakonec jsem si napsal jednoduchý skript,
který projde adresář „tests“ a najde všechny soubory končící
na „Test.php“ a zahrne je to testovací suity. Vypadá to nějak
takto: (ještě jsem přidal možnost určit testy explicitně pomocí parametru
v query stringu, takže můžu zavolat něco jako
testrunner.php?t=ObjectUtilTest,GatewayTest)
<?php
require_once '../lib/simpletest/unit_tester.php';
require_once '../lib/simpletest/reporter.php';
$tests = new TestSuite("Property Owners web service test suite");
if (isset($_GET['t'])) {
// In the 't' parameter, there can be a comma-delimited list of tests to run.
// Examples:
// t=ObjectUtilTest
// t=ObjectUtilTest,ResponseBuilderTest
// t=ObjectUtil,ResponseBuilder <-- "Test" suffix is optional
$tests_to_run = explode(",", $_GET['t']);
foreach ($tests_to_run as $test) {
if (file_exists($test . "Test.php")) {
$filename = $test . "Test.php";
} else {
$filename = $test . ".php";
}
$tests->addFile($filename);
}
} else {
$files = scandir(".");
foreach ($files as $file) {
if (strpos($file, "Test.php") !== false) {
$tests->addFile($file);
}
}
}
$tests->run(new HtmlReporter());
?>
SimpleTest má několik možností spuštění. Asi nejjednodušší je napsat naprosto běžnou PHP třídu a jen na začátek přidat require_once ‚simpletest/autorun.php‘ – soubor obsahující test pak stačí načíst v prohlížeči.
Jak jsem ale tvořil víc a víc testů v různých souborech, stal se tento přístup málo pružným. Nakonec jsem si napsal jednoduchý skript, který projde adresář „tests“ a najde všechny soubory končící na „Test.php“ a zahrne je to testovací suity. Vypadá to nějak takto: (ještě jsem přidal možnost určit testy explicitně pomocí parametru v query stringu, takže můžu zavolat něco jako testrunner.php?t=ObjectUtilTest,GatewayTest)