: Home / PHP / artykuły / Php_unit - pokrycie kodu

Warning: file_get_contents(http://graph.facebook.com/http://youthcoders.net/php/artykuly/555-php_unit-pokrycie-kodu.html): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /var/www/old-yc/plugins/content/addthis.php on line 38
Php_unit - pokrycie kodu
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
niedziela, 18 kwietnia 2010 12:42

Niedawno pokazałem jak zainstalować PHP_Unit, oraz jak wykonać z pomocą tego frameworka testy jednostkowe. W tym artykule postaram się pokazac, jak wykorzystać rozszerzenie Xdebug do generowania przejrzystych raportów z wykonania testów pokazujących pokrycie kodu testami jednostkowymi.

 

Czego potrzebujesz?

  • serwera www, np. Wampa.
  • zainstalowanego frameworka PHP_Unit - jak?
  • zainstalowanego rozszerzenia Xdebug - jak?
  • jakichś 5 minut wolnego czasu

 

Quick start

Stwórz plik `MyClass.php' i umieść w nim taki kod:

<?php
class MyClass
{
    public function add($a, $b)
    {
         return $a + $b;
    }
 
    public function multiply($a, $b)
    {
         return $a * $b;
    }
}

 

W tym samym katalogu stwórz plik `MyClassTest.php' umieść w nim taki kod:

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


class MyClassTest extends PHPUnit_Framework_TestCase
{
    public function testAdd()
    {
        $o = new MyClass();
        $res = $o->add(2, 4);
        $this->assertEquals($res, 2+4);
    }
}

 

Odpal wiersz poleceń, przejdź do katalogu z tymi plikami:

D:\programy\console\bin\debug>f:
F:\>cd vhosts\localhost

(u Ciebie oczywiście może być ina ścieżka)

 

Wykonaj polecenie:

phpunit --coverage-html MyClassTestReport MyClassTest

Powinny się pojawić takie komunikaty:

PHPUnit 3.4.12 by Sebastian Bergmann.
.
Time: 1 second, Memory: 5.75Mb
OK (1 test, 1 assertion)
Generating code coverage report, this may take a moment.

Zajrzyj teraz do katalogu `MyClassTestReport". Otwórz plik `index.html'. Powinieneś zobaczyć coś podobnego:Graficzny raport

 

Kliknij na link "MyClass.php". Powienieneś zobaczyć mniej więcej coś takiego:

Graficzny raport testowania klasy

 

Co tu widzimy?

Na górze widać tabelkę z procentowymi wynikami działania testu.

Poniżej widzimy kod testowanej klasy. Na zielono zaznaczone są linie, które były testowane w trakcie testów. Na szaro te, do których nie da się dojść nigdy. Na pomarańczowo zaznaczone są linie, które podczas testów nie były ani razu "odwiedzone". Dodatkowo po lewej stronie dwukropka widać ile razy odwiedzono daną linię.

 

Co dalej

 

Dodaj komentarz


Kod antysapmowy
Odśwież