2012-03-09 11 views
5

Przeszukałem podobne problemy na SO, ale bezskutecznie. Używam PHP 5.3.6 i phpunit w wersji 3.6.10. Kiedy próbuje wykonać prosty test:PHPUnit nieudane otwarcie wymaganego pliku

require_once 'PHPUnit/Framework.php'; 

class UserTest extends PHPUnit_Framework_TestCase { 
} 

I pojawia się następujący błąd:

PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework.php' 
(include_path='.:/Users/username/pear/share/pear:/usr/lib/php/pear/:/Users/username/pear/share/pear/PHPUnit') in ... 

Podczas ponownego PHPUnit, nie jestem pewien, czy miejsce zainstalowania został powielony, ale wydaje się, że podczas uruchamiania which phpunit, ścieżka jest: /usr/bin/phpunit. Jednak wydaje się również być zainstalowany w /Users/user/pear/bin/phpunit. Próbowałem już zaktualizować wszystkie kanały i ponownie zainstalować PEAR i PHPUnit, ale problem nadal istnieje. Używam systemu OSX Lion. Każda pomoc będzie bardzo ceniona.

+0

Zrobiłeś literówkę: '' PHPUit/Framework.php'' - brakuje 'n'. – hakre

+0

Przed ponowną instalacją PEAR * przeczytałem * najpierw komunikat o błędzie. Mówi ci, co poszło nie tak. Powiedziałem także w powyższym komentarzu. – hakre

+1

@hakre - przepraszam, to był błąd we pisaniu błędu (w przeciwieństwie do kopiowania i wklejania). Błąd polega na tym, że PHPUnit nie wymaga już jawnego wymagania klasy Framework. W jakiś sposób czytałem starą dokumentację i nie wiedziałem, dlaczego to nie działa. Dzięki za pomoc. – naivedeveloper

Odpowiedz

15

Wystarczy usunąć wiersz

require_once 'PHPUnit/Framework.php'; 

i wszystko powinno działać.

Nie musisz już niczego dodawać od include/require do PHPUnit, ponieważ (przynajmniej) PHPUnit 3.6 nie można dołączyć do tego pliku, ponieważ nie istnieje on już w dystrybucji.

phpunit zawodnik zajmie ładowanie początkowe wszystko, co jest potrzebne przez PHPUnit :)

+2

Dzięki, to właśnie widzę teraz. Jakoś pozornie natknąłem się na starą dokumentację lub coś na stronie PHPUnit, ponieważ wymagało tego pliku. Dzięki za pomoc. – naivedeveloper

+0

Hahahahaa. To naprawdę świetna odpowiedź. Po godzinie spędzonej na rozwiązaniu tego problemu =) +1 =)) –

1

Jak inni wskazał, Framework.php nie jest już wymagane.

Ale w każdym razie, jeśli masz już zbyt wiele plików testów pisemnych i posiadające deklarację włączenia, a następnie mocując je będzie kłopotliwe zadanie. Tak właśnie musiałem stawić czoła.

Jeśli potrzebne jest szybkie obejście problemu, utwórz pusty plik Framework.php. To rozwiąże problem. Utwórz pusty plik o nazwie Framework.php w swoim katalogu PHPUnit. (eg: at: /usr/share/php/PHPUnit/Framework.php).

sudo touch /usr/share/php/PHPUnit/Framework.php

Powiązane problemy