magento / magento/community-features
Integration tests create stub modules in app/code
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 46
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
When even a single integration test is executed, the following files and directories are created:
app/code/Magento
├── TestModuleDirectoryZipCodes
│ ├── etc
│ │ ├── module.xml
│ │ └── zip_codes.xml
│ └── registration.php
├── TestModuleFakePaymentMethod
│ ├── Gateway
│ │ └── Command
│ │ └── DoNothingCommand.php
│ ├── etc
│ │ ├── config.xml
│ │ ├── di.xml
│ │ └── module.xml
│ └── registration.php
└── TestModuleSample
├── composer.json
├── etc
│ └── module.xml
└── registration.php
(Note: the module Magento_TestModuleFakePaymentMethod is not generated in Magento 2.2.0).
This is a problem because running integration tests should not affect the installed Magento instance.
Preconditions
Reproduced on fresh installations of Magento 2.2.0 and 2.2.2. I haven't tried on Magento 2.2.1.
Steps to reproduce
- Install Magento, e.g.
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .and so on. - Run all integration tests or create a custom module with nothing but a single integration test.
- Run the test, e.g.
/var/www/example/vendor/phpunit/phpunit/phpunit --configuration /var/www/example/dev/tests/integration/phpunit.xml /var/www/example/app/code/Example/Foo/Test/Integration
Expected result
- Only the specified tests should run in isolation.
- Potential production code should not be affected.
Actual result
The modules are created in app/code/Magento potentially affect production code and are created independently if they are used in any test.
It should be possible to create the modules under dev/tests/integration/tmp in the sandbox directory and register them in the test process with the component registrar instead, leaving the app/code directory unmodified.
Original Report: https://github.com/magento/magento2/issues/12696 by @Vinai
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with dev/tests/integration/phpunit.xml and the phpunit command shown, then inspect how integration tests create the app/code/Magento modules. The issue points to dev/tests/integration/tmp and the component registrar as the intended area. Done means the specified tests run while leaving the installed app/code directory unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100