Codeception / Codeception/module-db
[Db] Change to disconnect on initialise breaks tests where Db is used in _beforeSuite
- Dominant language
- PHP
- Stars
- 23
- Forks
- 31
- PR merge metrics
- No merged PRs in 30d
Description
#### 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:
```yml
config:
Db:
dsn: 'mysql:host=localhost;dbname=XXXX;charset=utf8'
user: 'root'
password: ''
dump: 'tests/_data/schema.sql'
populate: true
cleanup: false
reconnect: true
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by inspecting the Db module's connection initialization and the helper code that runs SQL in _beforeSuite, using the shown reconnect configuration to reproduce the failure. Done means suite setup can execute its control-row SQL without a terminated connection when reconnect is enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100