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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions