Pokoušel jsem se zprovoznit Nette\Tester bez nutnosti instalace přes Composer. S Testerem se teprve seznamuju, takže napoprvé to bylo trochu ošemetné. Na řadu přišla metoda pokus-omyl, protože žádný návod jsem na to nenašel. Nakonec to ale není nijak složité.
Vycházím ze sandboxu z oficiálního downloadu. K němu jsem stáhnul aktuální release Nette\Tester a uložil ho do složky libs/tester.
Když bychom teď zkusili spusit test, skončí chybovou hláškou:
Install Nette Tester using `composer update --dev`
Musíme upravit soubor test/bootstrap.php ze sandboxu. Najdeme řádky:
if (!class_exists('Tester\Assert')) { echo "Install Nette Tester using `composer update --dev`\n"; exit(1); }
a přepíšeme je na:
if (@!include __DIR__ . '/../libs/Tester/Tester/bootstrap.php') { echo "Install Nette Tester using `composer update --dev`\n"; exit(1); }
V tuto chvíli by mělo všechno fungovat. Pokud ale používáte WAMP, dost možná se jen místo jedné chyby objeví chyba nová:
-- FAILED: sandbox\tests\ExampleTest.phpt Exited with error code 255 (expected 0) Fatal error: Call to undefined function Nette\Utils\mb_convert_encoding() in ... on line 61
Je to dáno tím, že PHP spouštěné z příkazové řádky používá jiné nastavení než když spouštíte aplikace v browseru. Aktivovat rozšíření php_mbstring přes menu v system tray tedy nepomůže.
Místo toho si stáhněte tento soubor a umístěte ho do adresáře s vašimi testy. Nyní by již vše mělo fungovat:
c:\www\sandbox>php libs/Tester/Tester/tester -c tests/php-win.ini tests PHP 5.4.3 | "php-cgi" -c "C:\www\sandbox\tests\php-win.ini" | 1 threads . OK (1 tests, 0 skipped, 0.1 seconds)