mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-12-22 23:26:11 +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 e35a1c288a
[TASK] Streamline the PHPUnit configuration file (#18)
- drop attributes that are the same as the default values
- add comment explaning the concept of multiple test suites
2018-05-26 20:44:18 +02:00
Classes [FEATURE] Add Tea.image as a FAL example (#15) 2018-05-25 22:39:33 +02:00
Configuration [TASK] Streamline the PHPUnit configuration file (#18) 2018-05-26 20:44:18 +02:00
Resources [FEATURE] Add Tea.image as a FAL example (#15) 2018-05-25 22:39:33 +02:00
Tests [FEATURE] Add Tea.image as a FAL example (#15) 2018-05-25 22:39:33 +02:00
.gitignore [TASK] Configure Composer caching and Xdebug 2018-01-10 22:23:45 +01:00
.travis.yml [TASK] Add a PHPUnit example configuration file (#16) 2018-05-26 19:50:59 +02:00
CHANGELOG.md [FEATURE] Composer script for PHP linting (#5) 2018-01-25 17:22:40 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2018-01-24 01:37:20 +01:00
composer.json [TASK] Update the testing framework from 2.0 to 3.0 (#11) 2018-05-25 17:18:03 +02:00
ext_emconf.php [TASK] Add autoloading to ext_emconf.php 2018-01-12 23:28:58 +01:00
ext_icon.svg [FEATURE] Add extension icon 2017-12-23 01:15:25 +01:00
ext_tables.sql [FEATURE] Add Tea.image as a FAL example (#15) 2018-05-25 22:39:33 +02:00
LICENSE Initial commit 2013-11-01 11:45:05 -07:00
README.md [TASK] Add a PHPUnit example configuration file (#16) 2018-05-26 19:50:59 +02:00

Tea example

Build 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 tests in PhpStorm

General PHPUnit setup

composer require typo3/cms ^8.7
composer install
git checkout HEAD -- composer.json

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

  • (*) Use Composer autoloader
  • Path to script: select 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
  • Use alternative configuration file
  • use .Build/vendor/nimut/testing-framework/res/Configuration/FunctionalTests.xml

Example PHPUnit configuration file with a test suite

The file Configuration/PHPUnit/ModelTests.xml contains an example of a PHPUnit configuration file that has a test suite (based on the unit tests configuration file from the testing framework).

Creating new extensions with automated tests

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

About me (Oliver Klee)

I am the maintainer of the PHPUnit TYPO3 extension, which is available in the TYPO3 extension repository (TER).

You can book me for workshops at your company.

I also frequently give workshops at the TYPO3 Developer Days.

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)