0

I have an existing store with a collection of existing plugins. I'm trying to setup an integration test to test some new features, but the test doesn't get past the installation:

Module 'Manadev_SpecialCategories':
Installing schema...
In EavSetup.php line 296:

  [Magento\Framework\Exception\LocalizedException]
  The entity ID is incorrect. Verify the ID and try again.

I checked the code in the stack trace and I see that this plugin in it's setup script tries to select the id from eavy_entity_type where entity_type_code is catalog_category

But, in the testing database this table is completely empty, so the setup script fails. Is there a way to bypass this, or trigger the magento seeders to get integration tests running smoothly?

0

I fixed this for now by modifying

dev/tests/integration/framework/Magento/TestFramework/Application.php by removing the local from the target filename where the global-config.php is copied.

/**
 * Copies global configuration file from the tests folder (see 
 TESTS_GLOBAL_CONFIG_FILE)
 *
 * @return void
 */
private function copyGlobalConfigFile()
{
    $targetFile = $this->_configDir . '/config.php';
    copy($this->globalConfigFile, $targetFile);
}

This way Magento sees which modules I wish to disable and merges my settings into the generated config that is generated by the setup:install call.

Somehow Magento ignores the config.local modules settings that get ignored.

By copying it this way, the modules I set up to be ignored in config-global.php get actually ignored during the setup:install process, allowing me a mean and lean testing environment for my module.

I am open for better ways to resolve this so I can disable modules I don't need in configuration.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.