This package serves as an umbrella package for several of MediaCT's testing packages.
composer require mediact/testing-suite --dev
The testing suite can be run through the GrumPHP command.
vendor/bin/grumphp run
The testing suite is also automatically run at each git commit using a git commit hook.
The following components are part of the testing suite.
The coding style is validated using PHPCS and uses the MediaCT Coding Standard.
During the installation of the testing suite a file called phpcs.xml
is added to
the root of the repository which refers to the coding standard. To make
adjustments to the coding standard this file can be edited and committed.
Depending on the composer type of the project an other standard will be used:
magento-module
: MediaCT Coding Standard Magento1magento2-module
: MediaCT Coding Standard Magento2
The complexity of the code is validated using PHPMD. A file called phpmd.xml
is added during the installation of the testing suite.
Static code analysis is executed using PHPStan. A file called phpstan.neon
is added during the installation of the testing suite.
Unit tests are executed using PHPUnit. A file called phpunit.xml
is added
during the installation of the testing suite.
The unit tests are expected to be in a directory called tests
. The code is
expected to be in a directory called src
.
When the project is hosted on Bitbucket a
Pipelines script will be
installed. The scripts supports a callback that will be called before
composer install
is executed. This callback can be used to add credentials
to composer. To enable the callback go to Bitbucket Settings > Pipelines >
Environment Variables and add an environment variable called
COMPOSER_PRE_INSTALL_CALLBACK
.
Example to add basic authentication for repo.example.com:
composer config --global http-basic.repo.example.com $YOUR_USER $YOUR_PASSWORD
Javascript linting for Magento 1 and Magento 2 projects is executed using
ESLint. Two files called .eslintrc.json
and
.eslintignore
are added to the root of the repository which contains the
coding standards and files excluded from analysis.
A third file called package.json
is added which contains the needed npm
modules. Run npm install
after the installation in order to enable ESLint:
npm install
When the testing suite is installed in a PHPStorm environment it automatically configures PHPStorm to use the correct coding style.
To enable PHPCS and PHPMD inspections in PHPStorm the correct binaries need to be configured. This is a global setting in PHPStorm and can therefore not be configured by the testing suite.
The recommended way to get the correct binaries is by installing the MediaCT Coding Standard globally.
composer global require mediact/coding-standard
The package will be installed in the home directory of composer. The location of this directory can be found using the following command:
composer global config home
Open PHPStorm and go to Settings > Languages & Frameworks > PHP > Code Sniffer.
Choose "Local" for the development environment and fill in the full path to
<composer_home_directory>/vendor/bin/phpcs
.
Then go to Settings > Languages & Frameworks > PHP > Mess Detector.
Choose "Local" for the development environment and fill in the full path to
<composer_home_directory>/vendor/bin/phpmd
.
After these adjustments the coding style and complexity will be validated while typing in PHPStorm.
To enable ESLint open PHPStorm and go to Settings > Languages & Frameworks > Javascript > Code Quality Tools > ESLint.
Enable ESLint by checking Enabled
. Then set the Node interpreter
to Project
and Configuration file
to Automatic Search
.