[TYPO3-core] RFC: Blueprint standalone unit tests

Christian Kuhn lolli at schwarzbu.ch
Mon May 5 21:19:31 CEST 2014


Hey.

On 10/13/2013 10:09 PM, Christian Kuhn wrote:
> it would be great to have your comments on the blueprint "Standalone
> Unit Tests" [1] to further consolidate the future goals and path of unit
> test development with TYPO3 CMS.

I'm happy to say that from my point of view, this blueprint can be 
considered as DONE.


Quite some patches were needed [1], [2] and those are only the direct 
related ones, not the indirectly triggered actions.


In effect, our test environment is much cleaner:
* No dependencies to running instance anymore
* LocalConfiguration / PackageStates no longer needed
* Autoloader finds everything on demand
* No database needed to execute tests
* ext:phpunit not needed anymore, use native phpunit
* Upgrade to higher phpunit versions w/o other 3rd party dependencies
* Stabilised tests don't fail in different environments so often
* Massive speed up: Down to ~20 seconds for 6600 tests on quick systems!
* Positive side effects on functional tests
* Clear distinction to functional tests
* Clean mocking for unit tests enforced
* composer based unit and functional test setup
* travis-integration project is obsolete for travis
* Simple setup to run unit/functional tests [3] [4]
* Positive influence on core code
* Clean and streamlined unit test bootstrap
* Execute unit tests from IDE's easily possible [5]


Next steps:
* Improve documentation at [3] and [4], maybe more.
* Adapt 3rd party extensions like ext:news to use this system
* Document how to run own extension tests, esp. on travis-ci
* Improve functional test system


More visions:
* Reduced dependencies opened a path to run hhvm for core [6]
* There is still room for functional test speed ups
* Further test systems may be in reach now (integration, ...)
* Use test bootstrap powering a working BE module in ext:phpunit again


I'm so glad this was not done by me alone! Special thanks to every 
involved hand, this would not have been possible without feedback, 
reviews, additional work, cooperation, motivation and sharing knowledge!


Thanks
Christian


[1] 
https://review.typo3.org/#/q/status:merged+project:Packages/TYPO3.CMS+branch:master+topic:standalone-tests,p,002bbe5e00006eee

[2] http://forge.typo3.org/issues/51436

[3] http://wiki.typo3.org/Unit_Testing_TYPO3

[4] http://wiki.typo3.org/Functional_testing

[5] 
http://typo3.helmut-hummel.de/post/63972451370/executing-typo3-cms-unit-test-tests-in-phpstorm

[6] http://blog.macopedia.co/post/running-typo3-cms-on-hhvm-part2/


More information about the TYPO3-team-core mailing list