mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-12-23 03:06:12 +01:00
Mirror of TYPO3 Extension tea, managed by the Best Practice Team https://typo3.org/community/teams/best-practices
Find a file
Oliver Klee 6671dce5b3
[BUGFIX] Always use the Composer-installed tools (#49)
Add the full relative path to Composer-installed binaries to make
sure that are used instead of other versions that happen to be in
the path.

Also drop unneeded trailing slashes from directories used in
Composer scripts.
2020-06-23 19:36:54 +02:00
.github/workflows [FEATURE] Run the functional tests via GitHub Actions (#55) 2020-06-06 23:09:20 +02:00
Classes [CLEANUP] Fix PHP_Codesniffer issues 2019-12-07 12:13:32 +01:00
Configuration [CLEANUP] Drop obsolete dividers2tabs from the TCA (#44) 2020-05-22 09:10:58 +02:00
Resources [FEATURE] Tea single view (#26) 2018-05-28 17:05:39 +02:00
Tests [TASK] Switch the code sniffing from PSR-2 to PSR-12 (#35) 2019-12-07 17:44:32 +01:00
.gitignore [FEATURE] Add PHP-CS-Fixer (#53) 2019-08-12 17:25:59 +02:00
.php_cs.dist [FEATURE] Add PHP-CS-Fixer (#53) 2019-08-12 17:25:59 +02:00
CHANGELOG.md [BUGFIX] Always use the Composer-installed tools (#49) 2020-06-23 19:36:54 +02:00
CODE_OF_CONDUCT.md [TASK] Use a Trainer Network contact email address in the CoC (#6) 2019-11-27 15:07:11 +01:00
codeception.yml [FEATURE] Example acceptance tests with Codeception (#31) 2018-05-31 23:48:38 +02:00
composer.json [BUGFIX] Always use the Composer-installed tools (#49) 2020-06-23 19:36:54 +02:00
ext_emconf.php [TASK] Allow TYPO3 10 in composer.json and ext_emconf.php (#27) 2019-12-07 12:48:34 +01:00
ext_localconf.php [BUGFIX] Keep the global namespace clean in ext_localconf.php (#39) 2019-12-07 19:15:24 +01:00
ext_tables.sql [TASK] Drop support for TYPO3 < 9.5 (#50) 2019-08-12 15:54:29 +02:00
LICENSE [TASK] Change from GPL V3+ to GPL V2+ (#40) 2019-08-08 12:38:56 +02:00
phpcs.xml.dist [TASK] Switch the code sniffing from PSR-2 to PSR-12 (#35) 2019-12-07 17:44:32 +01:00
README.md [TASK] Drop the Travis CI builds (#56) 2020-06-23 11:05:45 +02:00

Tea example

CI Status Latest Stable Version Total Downloads Latest Unstable Version License

This TYPO3 extension is an example for writing unit and functional tests for Extbase/Fluid-based extensions for TYPO3 CMS using PHPUnit.

It also is an example for best practices for extbase/fluid.

For information on the different ways to execute the tests, please have a look at the handout to my workshops on test-driven development (TDD).

Running the unit tests from the command line

composer ci:tests:unit

Running the tests in PhpStorm

File > Settings > Languages & Frameworks > PHP > Test Frameworks

  • (*) Use Composer autoloader
  • Path to script: select .Build/vendor/autoload.php in your project folder

In the Run configurations, edit the PHPUnit configuration and use these settings so this configuration can serve as a template:

  • Directory: use the Tests/Unit directory in your project
  • (*) Use alternative configuration file
  • use .Build/vendor/nimut/testing-framework/res/Configuration/UnitTests.xml in your project folder
  • add the following environment variables:
    • typo3DatabaseUsername
    • typo3DatabasePassword
    • typo3DatabaseHost
    • typo3DatabaseName

Unit tests configuration

In the Run configurations, copy the PHPUnit configuration and use these settings:

  • Directory: use the Tests/Unit directory in your project

Functional tests configuration

In the Run configurations, copy the PHPUnit configuration and use these settings:

  • Directory: use the Tests/Functional directory in your project
  • (x) Use alternative configuration file
  • use .Build/vendor/nimut/testing-framework/res/Configuration/FunctionalTests.xml

Running the acceptance tests

On the command line

  1. make sure you have Chrome installed on your machine
  2. composer update codeception/codeception (just in case)
  3. download the latest version of ChromeDriver
  4. unzip it
  5. chromedriver --url-base=wd/hub
  6. .Build/vendor/bin/codecept run (in another terminal)

In PhpStorm

  1. make sure the "Codeception Framework" plugin is activated
  2. right-click on Tests/Acceptance/StarterCest.php
  3. Run 'Acceptance (Codeception)'

Creating new extensions with automated tests

For creating new extensions, I recommend taking Helmut Hummel's extension skeleton as a starting point.

More Documentation

Other example projects

  • Selenium demo for using Selenium with PHPUnit
  • Anagram finder is the finished result of a code kata for TDD
  • Coffee example is my starting point for demonstrating TDD with TYPO3 CMS
  • TDD Seed for starting PHPUnit projects with Composer (without TYPO3 CMS)