0

I am trying to run PHPunit test for visit('/') in LAravel 5 but it fails with this message below : (my app is running in docker container http://www.spiralout.eu/2015/12/dockervel-laravel-development.html )

    class MyTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testExample()
    {
        $this->assertTrue(true);
    }


        public function providerAllUrisWithResponseCode()
    {
        return [
            ['/', 200],
            ['/thank', 200],
            ['/non-existing', 404],
        ];
    }

        public function testDisplayThankYou($value='')
    {
        $this->visit('/thankyou')
        ->see('Thank you!');
    }       


        public function testPageControllerGet()
    {
        $this->call('GET', '/');
    }
        public function testDisplayWelcome($value='')
    {
        $this->visit('/')
        ->see('Welcome');

    }
}

and I am getting this error .

        $vendor/bin/phpunit 
PHPUnit 4.8.26 by Sebastian Bergmann and contributors.

...F

Time: 24.01 seconds, Memory: 16.00MB

There was 1 failure:

1) MyTest::testDisplayWelcome

A request to [http://localhost] failed. Received status code [500].

    ..vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:196

    ..vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:80
    ..vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:61
    .../www/tests/ExampleTest.php:16

    Caused by
    exception 'PDOException' with message 'SQLSTATE[HY000] [2005] Unknown MySQL server host 'mysql' (2)' 
    in ../vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:55

My behat features passed ! My .env.* files look like :

.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

.env.behat
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

Also : If I remove or change DB_HOST=127.0.0.1 in .env.behat and I run behat it returns an error!

The line 50 in Connector.php says :

   public function createConnection($dsn, array $config, array $options)
    {
**here it breaks**-->   $username = Arr::get($config, 'username');

        $password = Arr::get($config, 'password');

        try {
            $pdo = new PDO($dsn, $username, $password, $options);
        } catch (Exception $e) {
            $pdo = $this->tryAgainIfCausedByLostConnection(
                $e, $dsn, $username, $password, $options
            );
        }

        return $pdo;
    }

For example when I run DB ::table('something')->get(); it's working fine.

Someone sees the problem?

4
  • Seems like an environment configuration issue, the DB_HOST must be set to mysql in the testing environment. Commented Jun 26, 2016 at 17:12
  • what if your DB_HOST in your .env is set to localhost not mysql ? Commented Jun 26, 2016 at 18:54
  • @Devon is my testing environment the same as the Laravel app. environment? Commented Jun 26, 2016 at 18:59
  • @ishadif My Laravel app is running in dockervel (docker container)spiralout.eu/2015/12/dockervel-laravel-development.html and I needed to set DB_HOST=mysql. Commented Jun 26, 2016 at 18:59

1 Answer 1

1

On .env.behat you should use the mysql as you host name. It is link through docker with that name not 127.0.0.1.
.env.behat DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret

Sign up to request clarification or add additional context in comments.

1 Comment

I changed it ,and tried all combinatations ,you can see I posted this question stackoverflow.com/questions/38043467/… and I don't know what's the problem.If u get it please help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.