2012-05-08 19 views
7

Używam Zend Framework dla niektórych projektów i chcę zbudować dla nich pakiety testowe PHPUnit. Niestety, Zend Framework w obecnej wersji (1.11.x) obsługuje tylko PHPUnit 3.5. W tym samym czasie chciałbym także rozpocząć pracę z frameworkiem Symfony, który z kolei obsługuje nowsze wersje PHPUnit. Pytanie brzmi, w jaki sposób mogę uruchomić wiele wersji PHPUnit na mojej maszynie dev w tym samym czasie bez konieczności instalowania oddzielnych serwerów lub podobnych rzeczy?Jak uruchomić wiele wersji PHPUnit na tym samym komputerze?

Używam systemu OS X Lion (10.7) i używam Apache i php (5.3.10) zainstalowanych za pośrednictwem MacPorts. Idealnie, chciałbym skończyć w sytuacji, w której mógłbym po prostu napisać np. phpunit5 w terminalu, aby wykonać wersję 3.5 i typ phpunit6, aby wykonać wersję 3.6 i tak dalej.

+1

Zasysa, gdy interfejsy API dostawców wymuszają nasze ręce na konkretnych wersjach, takich jak ta. –

Odpowiedz

4

Polecam sprawdzić ten post na blogu:

Dla Chef-receptury, sprawdź mój post na blogu:

W przypadku linków przestać działać:

  • gruszka obsługuje --installroot przełącznik
  • przykład:

    gruszka zainstalować --installroot/some/ścieżka/phpunit34 pear.phpunit.de/PHPUnit-3.4.15

Po zainstalowaniu może być konieczne dodanie /some/path/phpunit34/usr/bin/ do $PATH lub utworzenie dowiązania symbolicznego do /usr/bin, tak jak ilustruje to post na blogu.

HTH

+2

PEAR sprawia, że ​​dziecko Jezus płacze. –

+0

Dzięki! Instrukcje w pierwszym linku zrobiły podstęp (dlaczego nie mogłem stwierdzić, że po godzinach wyszukiwania Google pozostaje tajemnicą). Miałem trochę problemów ze ścieżką dołączania, dopóki nie zdałem sobie sprawy, że oczywiście muszę zdefiniować ścieżkę do plików frameworku PHPUnit, a nie to, co sam php używa (polecenie gruszka config-show | grep php_dir rzuciło mi trochę, ponieważ wskazywał mój plik binarny PHP). –

1

Zaakceptowanych odpowiedź działa po zainstalowaniu PHPUnit 3.4, ale jeśli chcesz zainstalować PHPUnit 3.5 (który może być również używany do testów jednostkowych w ramach projektu Zend, chociaż Zends własne testy mogą nie wszystko pass) musisz podążać nieco inną ścieżką. Będziesz musiał zainstalować zależności dla phpunit 3.5 osobno przed instalacją phpunit, w przeciwnym razie niektóre zależności wymuszą jedynie instalację phpunit 3.6:

Zainstaluj najpierw (zwróć uwagę na opcję -f, która wymusza instalację konkretnej wersji) :

sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.symfony-project.com/YAML-1.0.2 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHPUnit_Selenium-1.0.1 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHP_Timer-1.0.0 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/Text_Template-1.0.0 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHPUnit_MockObject-1.0.3 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/File_Iterator-1.2.3 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHP_CodeCoverage-1.0.2 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/DbUnit-1.0.0 
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHPUnit-3.5.15 

Następnie postępuj zgodnie z instrukcjami w linku zaakceptowanej odpowiedzi, aby zmienić ścieżkę dołączania i poprawnie ją zsynchronizować.

0

PHPUnit oferuje obecnie dołączane pliki Phar dla wszystkich jego wersjach na https://phar.phpunit.de/

Wystarczy pobrać potrzebną wersję (S) i wywołać je za pomocą:

php phpunit-X.Y.Z.phar 

(Gdzie X.Y.Z jest wersja PHPUnit)

Pliki PHAR można łatwo przekształcić w aliasy, aby były dostępne w całym systemie.

Powiązane problemy