module-db icon indicating copy to clipboard operation
module-db copied to clipboard

[Db] Change to disconnect on initialise breaks tests where Db is used in _beforeSuite

Open M1ke opened this issue 8 years ago • 1 comments

What are you trying to achieve?

A helper runs code to modify the database in _beforeSuite in order to add control rows before any tests are run.

What do you get instead?

The code crashes upon trying to run SQL as the connection has been terminated. This was new behaviour added by https://github.com/Codeception/Codeception/commit/5e2c999df9eae7ff4f802eb801940f87088f0fc7

Easiest fix would be to create a public method on Db to ensure that the connection is open before running code if config has reconnect. The quickest route would just be to make connect() public.

Details

  • Codeception version: 2.2.11
  • PHP Version: 7.0.19
  • Operating System: Ubuntu 16.04 LTS
  • Installation type: Composer
  • List of installed packages (composer show) not relevant
  • Suite configuration:
    config:
        Db:
            dsn: 'mysql:host=localhost;dbname=XXXX;charset=utf8'
            user: 'root'
            password: ''
            dump: 'tests/_data/schema.sql'
            populate: true
            cleanup: false
            reconnect: true

M1ke avatar May 16 '17 11:05 M1ke

** I've the same issue** PHP Fatal error: Call to a member function getDbh() on null in \Module\Db.php on line 335

removed field from .yml "recconent: true" helped me

Mprint avatar May 23 '17 13:05 Mprint