New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot redeclare AcceptanceTesterActions #3208
Comments
Having exactly the same issue with Yii2 and DataFactory in functional tests Looking at the stack trace I can see my Cest file is first loaded in Codeception/Lib/Parser::includeFile(), line 197 then it's loaded again from League/FactoryMuffin/FactoryMuffin::loadDirectory() line 351 My functional_suite.yml file is: class_name: FunctionalTester
modules:
enabled:
- Filesystem
- Yii2
- DataFactory:
factories: tests/_support/factories
depends: Yii2
- \tests\codeception\frontend\Helper\Factories
config:
Yii2:
configFile: '../config/frontend/functional.php' |
I think I've found the bug. In both the files you specify:
But seeing the code, it expects a path relative to the codeception.yml file. However Yii2 specifies a subfolder in tests (codeception) and that's why it does not work. Then because Codeception uses realpath:
This returns false if the directory does not exist. This results in factoryMuffin to load a empty directory (so basically it tries to load every php file in the Codeception folder). This is why it gets the duplicate class exception. I will put in a pull request that throws an Exception when the factory folder can not be found and will update the documentation. |
@alexjeen thanks for the investigation and solution |
Somehow we are having trouble enabling these three modules. Yii2 and Webdriver play nicely together but when we add DataFactory we get a duplicate class Exception.
Build runs OK:
Our acceptance.suite.yml:
When running:
PHP Fatal error: Cannot redeclare class _generated\AcceptanceTesterActions in /Applications/MAMP/htdocs/invatio/vwp/tests/codeception/_support/_generated/AcceptanceTesterActions.php on line 13
We are using Codeception version 2.2.1.
The text was updated successfully, but these errors were encountered: