Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]testy phpUnit
Forum PHP.pl > Forum > Przedszkole
Crash89
Zainstalowałem phpunit i chciałbym uruchomić je przez polecenie phpunit plik.php
Ale mam problem ze wczytaniem plików, bo kiedy wczytuje ścieżkię ze znakami "/" mam błąd, non such file or directory.
Dopiero gdy zmienię ścieżki na znak "\" zaczyna działać, to ma chyba związek z tym że phpunit korzysta z PEARa.
Ale to i tak w końcu się zatrzymuje i nie wczytuje pliku.
zmienianie ścieżek jest mi nie po drodze, gdyż wtedy nie działa mi projekt.
Znaki "/" i "\" wykorzystuję w funkcji require_once.

To jest kod w pliku test.php:
  1. namespace My\Test;
  2.  
  3. use PHPUnit\Framework\TestCase;
  4. use My\Lib\Model\BreakerModel;
  5. use My\Lib\Main;
  6.  
  7. require_once('..\Vendor\autoload.php');
  8.  
  9. spl_autoload_register(function ($class){
  10. if ($class == 'PhpParser\Autoloader') {
  11. return;
  12. }
  13. require_once('./Lib/autoload.php');
  14. $autoload = new \Autoload();
  15.  
  16. require_once $autoload->parseNamespaceToPath($class);
  17. });
  18.  
  19. final class Model_Entity_Test extends PHPUnit_Framework_TestCase {}


Jak wczytać poprawnie pliki phpUnit?
trzczy
W tym kodzie test.php która linia powoduje błąd i jaka jest treść błędu?
Crash89
Cytat(trzczy @ 28.02.2018, 18:38:24 ) *
W tym kodzie test.php która linia powoduje błąd i jaka jest treść błędu?



Fatal error: require_once(): Failed opening required './Lib/autoload.php' (include_path='D:\xampp\htdocs\BreakWork\Vendor/phpunit/php-code-coverage; itd.
on line 15

kiedy zmienię to na '..\Lib\autoload.php'
Działa ale nie wczytuje wtedy najważniejszego pliku TestCase i muszę te ścieżki wtedy zmieniać w klasie Autoload a to powoduje błędy w projekcie.
trzczy
Na pewno? Linia 15 jest pusta.


Co do tych ukośników to może to pomoże https://stackoverflow.com/a/9302382/5673289
Crash89
Cytat(trzczy @ 28.02.2018, 19:09:13 ) *
Na pewno? Linia 15 jest pusta.


Co do tych ukośników to może to pomoże https://stackoverflow.com/a/9302382/5673289


Nie w tym problem, chodzi o linie 13
W całym projekcie ten require działa, tylko w phpunit nie.
trzczy
require to jest funkcja czystego php i nie ma związku z phpunit
Crash89
Cytat(trzczy @ 28.02.2018, 20:43:09 ) *
require to jest funkcja czystego php i nie ma związku z phpunit


Ok, to może zadam pytanie inaczej, jak wczytać klase PHPUnit_Framework_TestCase
dajmy na to gdyby kod wyglądał tak:

  1. namespace My\Test;
  2.  
  3. use PHPUnit\Framework\TestCase;
  4. use My\Lib\Model\BreakerModel;
  5. use My\Lib\Main;
  6.  
  7. final class Model_Entity_Test extends PHPUnit_Framework_TestCase {}


autoloader composera jest w ścieżce './Vendor/autoload.php'; ale to nie wystarcza.
a test case w sciezce ./Vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.