IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Konzolová aplikace v PHP - chyba při spuštění unit testů

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Daniel Šup
Člen
Avatar
Daniel Šup:1.10.2017 14:13

Zdravím,

nyní vytvářím konzolový systém s články v PHP. Uživatelé se musí před přidáním příspěvku k článku či přidání nového článku přihlásit pomocí identifikátoru. Články jsou v systému řazeny do jednotlivých témat. Zdrojové kódy aplikace mám umístěné na GitHubu: https://github.com/…WithArticles
V tuto chvíli doplňuji testy a při spuštění testů se mi v terminálu objevuje chybové hlášení a rád bych věděl, čím je toto chybové hlášení způsobeno.
Když spustím příkaz vendor/bin/phpunit -c phpunit.covera­ge.xml, tak se mi v terminálu objeví toto chybové hlášení:

PHP Fatal error:  Class 'Articles\Model\Model\User' not found in /root/PhpstormProjects/articles/src/Articles/Tests/Model/Model/ArticleTest.php on line 35
PHP Stack trace:
PHP   1. {main}() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/phpunit:0
PHP   2. PHPUnit_TextUI_Command::main() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/phpunit:52
PHP   3. PHPUnit_TextUI_Command->run() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/TextUI/Command.php:116
PHP   4. PHPUnit_TextUI_TestRunner->doRun() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/TextUI/Command.php:186
PHP   5. PHPUnit_Framework_TestSuite->run() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:517
PHP   6. PHPUnit_Framework_TestSuite->run() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/Framework/TestSuite.php:722
PHP   7. call_user_func:{/root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/Framework/TestSuite.php:668}() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/Framework/TestSuite.php:668
PHP   8. Articles\Tests\Model\Model\ArticleTest::setUpBeforeClass() /root/PhpstormProjects/articles/vendor/phpunit/phpunit/src/Framework/TestSuite.php:668

Zajímalo by mě, jaké chyby v mých zdrojových kódech způsobují toto chybové hlášení. Jak mám upravit své zdrojové kódy tak, aby testy proběhly v pořádku a nevypsalo se mi chybové hlášení po spuštění příkazu vendor/bin/phpunit -c phpunit.covera­ge.xml?

 
Odpovědět
1.10.2017 14:13
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Daniel Šup
David Hartinger:1.10.2017 14:41

To hlášení mi připadá naprosto jasné, nemáš načtenou tu třídu User. Jak se v PHPUnit řeší autoloader tu je popsané zadarmo v kurzu o testování v PHP - https://www.itnetwork.cz/…lace-phpunit

Nahoru Odpovědět
1.10.2017 14:41
New kid back on the block with a R.I.P
Avatar
Daniel Šup
Člen
Avatar
Odpovídá na David Hartinger
Daniel Šup:1.10.2017 16:16

Ahoj,

díky za odpověď. Jen mi nebylo jasné, proč to nemohlo načíst třídu User. Upravit to podle článku by bylo možné, ale upravil jsem třídu ClassLoader v adresáři vendor/composer a nyní je vše v pořádku.

 
Nahoru Odpovědět
1.10.2017 16:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.