I need to test helper method that accepts Illuminate\Database\Eloquent\Collection as a parameter. But I can not figure out how to prepare it inside a unit test. My logic says it should be simple to create Collection from assoc array. But I just can’t get it to work.
At the moment, not to get stuck, I will probably use feature testing (because if feature (API endpoint) works then probably my helper method also works). Though, it feels stupid workaround.
If you are getting the response “No tests executed” from php artisan test then please check that your test classes have their names in singular. ContactTest instead of ContactTests.
I spent like 3h to figure out why my Feature tests don’t run from command line while working well in phpStorm. The reason was that my class names were in plural.
In phpStorm see Settings -> PHP -> Test Frameworks -> Test Runner. Check if you have default configuration file phpunit.xml checked. No need to change anything in this file.
Create .env.testing and copy whole DB_ block from .env (not just parts that are different). Change values to your test database values.
Then run php artisan config:clear which will clear configuration cache.
Everything should work đ
I spent several hours figuring it out. Hopefully you don’t.
Created new Laravel project by composer create-project laravel/laravel example-app. Trying to run tests/Feature/ExampleTest.php in PhpStorm and I get an error Class 'phpunit' could not be found in '/home/robert/phpunit-test-app/vendor/phpunit/phpunit/phpunit'. What does it even mean?! đ There are no answers on Google at the moment and this post will probably rank well.
Solution
For some reason my CLI interpreter did not make any sense. It took me quite a few hours to figure it out.
Panin lÔpuks uue blogi lisamise vormi tööle (lehe allosas). See ei tee muud, kui saadab mulle e-mailile uue blogi lisamise info.
Pisut oodatust kauem kulus aega sellele, et .env failis e-maili saatmise konfiguratsiooni paika saada. Arenduse ajal kasutasin mailtrap.io teenust aga toodangus tahtsin ikka Zone enda SMTPd kasutada. Siin nĂ€idises oleva konfiguratsiooniga tekkis pildil olev viga. PĂ”hjuseks, et mul oli Laravel 8 â Laravel 9 uuendamise kĂ€igus puudu jÀÀnud mail.php failis rida 'verify_peer_name' => false (StackOverflow, Github).
Lisaks asendasin (peamiselt Ôppimise eesmÀrgil) Query Builder andmebaasipÀringud Eloquent ORM pÀringutega, mis eeldatavasti vÔiksid olla kiiremad (eeldusel, et Eloquent oskab natuke nutikama pÀringu kokku panna kui ma ehk ise oskaks) ja paremini loetavad (kuigi nad on kohati pÀris Ôudsed). NÀiteks selline nÀeb vÀlja rubriigi pÀring.
Kui .NETis (koolis) arendus kĂ€is nii, et teed mudeli+seosed ja mudeli pĂ”hjal scaffoldid migrationi (me enamasti isegi ei sĂŒvenenud, mida ĂŒldse toodeti sinna), siis Laravelis teen mĂ”lemad kĂ€sitsi ja nad ĂŒksteisest midagi ei tea. Migration on ainult andmebaasi muudatusteks (mÀÀrad baasis indeksid ja seosed). Model on Eloquenti pĂ€ringute jaoks ja ta ei tea midagi sellest, mis baasis toimub.
Lisaks kirjutasin PostsSeeder‘i, mis Fakeri abil teeb kiiresti palju postitusi, et saaksin vaadata, kuidas rakendus 100k vĂ”i miljoni postitusega töötab. Arenduse andmebaas on Dockeri konteinerina mul pisikeses Hetzneri CPX11 purgis (2 vCPU, 2GB RAM ja 40GB ketast).
Kellaaegadega tegelesin ka. Avastasin, et blogide RSS annab UTC ajad. SellepÀrast vÔis jÀÀda mulje, et Eestis on vÀga palju varahommikusi blogijaid aga tegelt oli lihtsalt kellaaeg vale. Need on vaja kuidagi Europe/Tallinn aegadeks saada. Lahendasin hetkel nii, et Carbon teeb need mallis korda aga ma sellega lÔpuni rahul ei saa olla, sest mul on andmebaasis kuupÀev ja kellaaeg eraldi. Natuke pean veel nuputama, kuidas seda veakindlalt lahendada.
I updated from the previous Ubuntu to the latest 22.04.1 LTS (Jammy Jellyfish). Having some issues now.
Chrome is crashing on Ubuntu 22.04.1 LTS
Chrome browser is crashing very often. Window just becomes non-responsive. I can close the window and open new ones but not use the current one.
External drives do not mount
Problem with mounting Windows partition and external harddrive.
“Unable to access location. Error mounting [..] wrong fs type, bad option, bad superblock on [..], missing codepage or helper program, or other error.”
This happened when the migration of my in-between table ran before the table its FKs were linked to. First I thought I can not use Laravel’s foreign key constraints but at some point I figured it out. Renaming the migration file helped.