Codeception / Codeception/module-db
[Db] Change to disconnect on initialise breaks tests where Db is used in _beforeSuite
- Vorherrschende Sprache
- PHP
- Sterne
- 23
- Forks
- 31
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
#### 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
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit der Untersuchung der Verbindungsinitialisierung des Db-Moduls und des Hilfscodes, der in _beforeSuite SQL ausführt, und verwende die gezeigte reconnect-Konfiguration, um den Fehler zu reproduzieren. Die Aufgabe ist abgeschlossen, wenn das Suite-Setup seine SQL-Anweisungen für die Steuerzeile ohne eine beendete Verbindung ausführen kann, wenn reconnect aktiviert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- databases
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100