Categories
Laravel Samuel Test Driven Laravel Series

Setting up phpstorm to run unit tests

In This post we will go through the process of setting up phpstorm to run our tests.

Step 1:

Our first step is to get to the phpunit settings portion of phpstorm, to do this we can type control + shift + a or we can type “shift shift” and then type phpunit. The easier method is to hit control + shift + a, type phpunit and select the first option with the “settings” next to it.

Step 2:

Once the settings screen pulls up we should already be at the phpunit section. If not just type phpunit in the search bar at the top left. On this screen you will need to input 2 variables to get your tests working:

C:\wamp64\www\project-name\vendor\autoload.php

C:\wamp64\www\project-name\phpunit.xml

The final result should look like the snapshot below:

phpstorm-tests

Step 3:

Now we are ready to run our tests. To do this you can hit shift + f10 or you can go to the top nav bar and select “run > run all”.

Other helpful notes:

-control f5 will run the most recent test again
-alt + shift + f10 will run all the tests. This is helpful if you have only been running one specific test and would like to go back to running all tests

Categories
Laravel Samuel Test Driven Laravel Series

Third Hard Stop

Now when Adam runs this test he is getting updated errors that are created by adding the “formatted_date” variable to the blade file and then building out his second test. To fix this issue it actually ends up being really simple. All that we had wrong was the following code:

/**@test */

function can_get_formatted_date ()

This needed to be updated to add a space in between the ** and the @ symbol, so it looks like:

/** @test */

function can_get_formatted_date ()

If the ** is connected to the @ symbol then the test will not work. Once updated we can run the test and start following along with Adams errors.

Categories
Samuel Test Driven Laravel Series

Second Test Driven Laravel Hard Stop

The steps to fix this second Hard stop

1.) Open up ConcertsController.php and find the line: $concert = Concert::find($id);

2.) Hover over the class name, which is Concert::. Once your mouse is hovering over this hold down Alt and right click. In php storm this will bring up a new window that says “import this class”. Click to import the class. Alternatively if you are not using PHPstorm you can import the class by copying the code below:

use App\Concert; This goes at the top of the ConcertsController.php document.

Categories
Laravel Samuel Test Driven Laravel Series

List Of Hard Stops In Test Driven Laravel Series

We have recently started a new continuing education series called Test Driven Laravel. Only a few episodes in and this has already proved to be an excellent and well made series of tutorials. If you would like to check this series out head over to https://adamwathan.me/test-driven-laravel/

First Hard Stop:

Setting up blank laravel install using the Laravel Composer Tool. Written about here

Second Hard Stop:

on the “getting green” episode once we have created a provider, a controller and a view we get to the point where we need to add $concert = Concert::find($id);

For my local install this causes an issue when we run the test ./vendor/bin/phpunit.

I get the error Fatal error: Class 'App\Http\Controllers\Concert' not found

Fix for this Written about here

Third Hard Stop
On the unit testing presentation logic episode anytime the test snippet is run we keep getting the same error even after we have created a new file in test/unit/ConcertTest.php and followed along with all of Adams steps we keep getting the same error when running the test command:

./vendor/bin/phpunit

We get the error:

Failed asserting that the page contains the HTML [December 6, 2016]. Please check the content above.

Fix for this written about here

Fourth Hard Stop

When we get past the previous ** error we run into an issue on the very last test of this episode. When Adam runs the last test he gets all greens and the lesson is over, when we run the test we get:

ConcertTest::can_get_formatted_date
Illuminate\Database\QueryException: SQLSTATE[HY000]: General error: 1 no such table: concerts

This was an issue in the very beginning of the lesson where we forgot to add in use DatabaseMigrations;. You will want to add this code to the ConcertTest.php inside of the ConcertTest class.

Fifth Hard Stop

Setting up phpstorm to run unit tests instead of running them in the command line, this allows us to run individual tests instead of all the tests at once