Skip to content

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

@pawelryznar

Description

@pawelryznar

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?

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
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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions