mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-09-19 23:36:13 +02:00
Mirror of TYPO3 Extension tea, managed by the Best Practice Team https://typo3.org/community/teams/best-practices
Find a file
Oliver Klee 14602e19b5
[BUGFIX] Stop caching vendor/ on Travis CI (#52)
Downgrades of Composer packages do not work reliably
if a higher version of a package already is installed in `vendor/`.
This causes builds to use higher versions of packages than intended
if Travis CI has the corresponding version in the cached and restored
`vendor/` folder.
2020-05-22 12:31:09 +02:00
.github/workflows [BUGFIX] Use the PHP version from the matrix in the CI (#48) 2020-05-22 11:38:45 +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
.travis.yml [BUGFIX] Stop caching vendor/ on Travis CI (#52) 2020-05-22 12:31:09 +02:00
CHANGELOG.md [BUGFIX] Stop caching vendor/ on Travis CI (#52) 2020-05-22 12:31:09 +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 [TASK] Switch the code sniffing from PSR-2 to PSR-12 (#35) 2019-12-07 17:44:32 +01: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] Update the GitHub actions status badge URL (#47) 2020-05-22 09:14:54 +02:00

Tea example

Build Status 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)