Codeception / Codeception/module-mezzio

ZendExpressive module fails when trying to use DataFactory with recreateApplicationBetweenTests set to true

Ouverte
#7 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
PHP
Étoiles
1
Forks
4
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

#### What are you trying to achieve?

I'm trying to use use FactoryMuffin for tests in my Zend Expressive application. With default setting **recreateApplicationBetweenTests: true** for ZendExpressive module tests don't work. I'm getting an exception. Changing config to **recreateApplicationBetweenTests: false** helps but I need to use **recreateApplicationBetweenTests: true**.

#### What do you get instead?

```bash
php vendor/bin/codecept run tests/api/Stores/CreateViewCest.php -vvv
Codeception PHP Testing Framework v3.1.0
Powered by PHPUnit 8.3.4 by Sebastian Bergmann and contributors.
Running with seed:

[Seed] 1069952343

[Connecting To Db] {"config":{"populate":false,"cleanup":false,"reconnect":false,"waitlock":0,"dump":"tools/migration/giftcard_structure.sql","populator":null,"dsn":"mysql:host=127.0.0.1;dbname=test_giftcard_local;port=32768","user":"api_user","password":"api_user_pwd"},"options":[]}
[Db] Connected to default test_giftcard_local
PHP Fatal error: Uncaught Error: Call to a member function has() on null in /Users/local/Workspace/proj/vendor/codeception/codeception/src/Codeception/Module/ZendExpressive.php:94
Stack trace:
#0 /Users/local/Workspace/proj/vendor/codeception/codeception/src/Codeception/Module/Doctrine2.php(222): Codeception\Module\ZendExpressive->_getEntityManager()
Codeception/Codeception#1 /Users/local/Workspace/proj/vendor/codeception/codeception/src/Codeception/Module/Doctrine2.php(1011): Codeception\Module\Doctrine2->retrieveEntityManager()
Codeception/Codeception#2 /Users/local/Workspace/proj/vendor/codeception/codeception/src/Codeception/Module/DataFactory.php(178): Codeception\Module\Doctrine2->_getEntityManager()
Codeception/Codeception#3 /Users/local/Workspace/proj/vendor/codeception/codeception/src/Codeception/Module/DataFactory.php(158): Codeception\Module\DataFactory->getStore()
Codeception/Codeception#4 /Users/local/Workspace/proj/vendor/codeception/codeception/src/Codeception/Module/ZendExpressive.php on line 94
```

### Details

* Codeception version: 3.1.0
* PHP Version: 7.1.3
* Operating System: MacOS
* Installation type: Composer
* List of installed packages (`composer show`)
```
codeception/codeception 3.1.0
zendframework/zend-expressive 3.2.1
phpunit/phpunit 8.3.4
league/factory-muffin v3.0.1
```

* Suite configuration:
\Tests\Helper\Api extends \Codeception\Module\ZendExpressive

```yml
class_name: ApiTester
modules:
enabled:
- \Tests\Helper\Api
- Asserts
- Db
- REST
- DataFactory
config:
\Tests\Helper\Api:
environment_file: .env.testing
disable_exception_handling: false
run_database_seeder: false
cleanup: false
recreateApplicationBetweenTests: true
REST:
depends: \Tests\Helper\Api
part: Json
DataFactory:
factories: tests/_support/factories
depends: Doctrine2
cleanup: false
Doctrine2:
depends: \Tests\Helper\Api

```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez à la ligne 94 de Codeception/Module/ZendExpressive.php et suivez les appels depuis Doctrine2 et DataFactory lorsque recreateApplicationBetweenTests vaut true. Reproduisez le comportement avec la commande Codeception et la configuration de suite fournies, puis comparez-le au comportement avec le paramètre false. C’est terminé lorsque le chemin DataFactory ne déclenche plus l’erreur null has(), tout en laissant la recréation activée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
mysql, php
Domaine
backend, testing-qa
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.