Instalace PHPUnit na Windows

Patrik Votoček

Minulou sobotu (26.9.2009) se konala již tradiční Poslední Sobota . Po delší odmlce, kdy jsem se z různých důvodů nemohl účastnit, jsem se na tuto brněnskou vypravil. Těšil jsem se o to více, když byl zveřejněn oficiální program, který se převážně týkal testování. Když to vemu od konce tak Davídek G. opět nešetřil humorem a tak svou prezentaci o 4řech slajdech ovládal zapomocí “WhitekPhone Aplikace”((vypnutý iPhone ovládal zapomocí Whitka tlačítka zpět a vřed)) . Jeho přednáška byla o tom, jak Nette Framework testuje sám sebe, nicméně její zajímavost byla zastíněna předchozí přednáškou Martina Mayera o PHPUnit. Jeho přednáška mě inspirovala na tolik, že jsem se včera pustil do zprovozňování/instalace.

A to je právě to, o čem bych chtěl dneska psát.

Instalujeme PEAR

Předpokládejme, že máte složku s PHP na co nejdostupnějším místě a tím je C:\PHP. Než začneme se samotnou instalací PHPUnit-u, musíme nainstalovat rozšíření PHP zvané PEAR. Jelikož jsem osoba od přírody líná a PEAR považuji za věc těsně před vyhynutím, tudíž jsem jej nikdy nepotřeboval a neistaloval. Vydal jsem se pátrat po instalačním balíčku a ejhle nenašel jsem. Tak jsem začal pátrat jak na to. Narazil jsem na http://pear.php.net/go-pear jedná se o PHP script, který za vás PEAR stáhne, nainstaluje a dokonce nastaví. Takže script zkopírujeme, uložíme do souboru C:\PHP\go-pear.php a spustíme comand lajnu s s administrátorskými právy (zmáčkni Win+R napiš cmd a odentruj). Ano takovou tu nejošklivější část windows, která se moc nepoužívá. Nyní přejděte do složky C:\PHP(cd C:\PHP odentrovat) a napište php go-pear.php spustí se instalační proces PEARu, který vás povede krok za krokem. (Pokud používáte PHP5.3 bude to na vás při instalaci řvát, že jsou některé funkce Deprecated - toho si nevšímejte). Po instalaci vznikne ve složce s PHP soubor PEAR_ENV.reg, ten spusťte, potvrďte administrátorská práva a je hotovo - PEAR je nainstalován.

Instalace PHPUnit

PEAR máme nainstalován a tak můžeme nainstalovat samotný PHPUnit. Sputíme comand lajnu, přejdeme do složky C:\PHP a zadáme příkaz pear channel-discover pear.phpunit.de a poté pear install phpunit/PHPUnit. PHPUnit se sám nainstaluje a je hotovo.

Akutalizace

Nedávno jsem potřeboval znovu nainstalovat PHPUnit a narazil jsem na chybu.

Unknown remote channel: pear.symfony-project.com
Did not download optional dependencies: pear/Image_GraphViz, pear/Log, use --alldeps to download automatically
phpunit/PHPUnit requires package "channel://pear.symfony-project.com/YAML" (version >= 1.0.2)
phpunit/PHPUnit can optionally use package "pear/Image_GraphViz" (version >= 1.2.1)
phpunit/PHPUnit can optionally use package "pear/Log"
phpunit/PHPUnit can optionally use PHP extension "xdebug" (version >= 2.0.5)
No valid packages found
install failed

Následující příkaz problém vyřeší:

pear channel-discover pear.symfony-project.com

Testujeme jestli se PHPUnit nainstaloval

Vytvoříme novou složku třeba C:\test a vytvoříme v ní dávkový soubor - třeba RunTest.bat. Jeho obsah bude jednoduchý - jeden řádek.

c:\PHP\phpunit.bat ./

Teď už vytvoříme samotný první test. Takže nový soubor MujTest.php (soubor musí končit na Test.php aby ho phpunit spustil). Jeho obsah bude už o něco složitější a vezme ho z příkladu.

<?php
require_once 'PHPUnit/Framework.php';

class StackTest extends PHPUnit_Framework_TestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}
?>

A opět spustíme comand lajnu, přejdeme do složky C:\test a spustíme RunTest.bat. Pokud vám konzole vypíše následující text, blahopřeji, vaše snaha byla úspěšná. Nyní můžete začít psát a testovat jak je libo.

C:\test>RunTest.bat

C:\test>c:\PHP\phpunit.bat ./
PHPUnit 3.4.0 by Sebastian Bergmann.

.

Time: 0 seconds

OK (1 test, 5 assertions)

C:\test>

Důležité odkazy: http://phpunit.de , http://pear.php.net

Pokud se vám něco nepodařilo, rád v komentářích poradím.

« »