craftcms / craftcms/docs

[4.x]: Outdated Testing Docs

Open
#556 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

📦 CMS
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.