[4.x]: Outdated Testing Docs
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 42
- Forks
- 160
- Avg merge
- 3h 9m
- Merged PRs (30d)
- 4
Description
What happened?
Description
Following the Craft 4 testing documentation I noticed a few inconsitencies which indicate that it has not been updated since Craft 3.
Problem 1: Install Codeception 3.1 or Higher. Running composer require --dev codeception/codeception ^3.1 will prompt this: - codeception/codeception[3.1.0, ..., 3.1.3] require php >=5.6.0 <8.0 -> your php version (8.0.2; overridden via config.platform, actual: 8.0.30) does not satisfy that requirement. CraftCMs requries >=8.0.2, this version of codeception requires <8.0.
In the requirements section, this is written: Craft CMS 3.2 or higher, however, I am using the Craft 4 docs. This is probably the biggest give away that the docs have no been updated.
Problem 2: Running composer require --dev vlucas/phpdotenv ^3.0, will result in the following error when running ./craft: PHP Fatal error: Uncaught Error: Call to undefined method Dotenv\Dotenv::createUnsafeMutable() in /Users/.../.../.../craft2/bootstrap.php:17
Problem 3: codecept is not in project root path. Must to use php vendor/bin/codecept run Unit.
Taking the assumption that both codeception/codeception and vlucas/phpdotenv should be installed at their latest version to continue.
Running php vendor/bin/codecept run Unit results in the following error:
Codeception PHP Testing Framework v5.0.11 https://helpukrainewin.org
PHP Fatal error: Uncaught Error: Class "Codeception\Module\Yii2" not found in /Users/.../.../.../craft/vendor/craftcms/cms/src/test/Craft.php:65
Stack trace:
#0 /Users/.../.../.../craft/vendor/composer/ClassLoader.php(576): include()
craftcms/cms#1 /Users/.../.../.../craft/vendor/composer/ClassLoader.php(427): Composer\Autoload\{closure}('/Users/.../...')
craftcms/cms#2 [internal function]: Composer\Autoload\ClassLoader->loadClass('craft\\test\\Craf...')
craftcms/cms#3 /Users/.../.../.../craft/vendor/codeception/codeception/src/Codeception/Lib/ModuleContainer.php(97): class_exists('\\craft\\test\\Cra...')
craftcms/cms#4 /Users/.../.../.../craft/vendor/codeception/codeception/src/Codeception/SuiteManager.php(49): Codeception\Lib\ModuleContainer->create('\\craft\\test\\Cra...')
Craft CMS version
4.5.5
PHP version
8.0.30
Operating system and version
Mac OS Ventura 13.0
Database type and version
MySQL Ver 14.14 Distrib 5.7.42
Image driver and version
No response
Installed plugins and versions
"require": {
"craftcms/cms": "^4.4.0",
"vlucas/phpdotenv": "^5.4.0"
},
"require-dev": {
"codeception/codeception": "^5.0",
"craftcms/generator": "^1.3.0",
"yiisoft/yii2-shell": "^2.0.3",
"codeception/module-phpbrowser": "*",
"codeception/module-asserts": "*"
},
Contributor guide
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
Start by locating the Craft 4 testing documentation referenced in the issue and compare its Codeception, dotenv, Craft CMS, and command examples with the reported PHP 8 setup. Update the affected instructions so installation and test execution are consistent, then verify the documented commands and dependencies against the reported failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- documentation, testing
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 40/100