Use when setting up TYPO3 extension test infrastructure, writing unit/functional/E2E tests, configuring PHPUnit 11/12/13, mutation testing, mocking final classes (v14), CI/CD matrix across TYPO3 12/13/14.3 LTS, dev-dependency consolidation via typo3-ci-workflows meta-package, or debugging CI failures.
Use when setting up TYPO3 extension test infrastructure, writing unit/functional/E2E tests, configuring PHPUnit 11/12/13, mutation testing, mocking final classes (v14), CI/CD matrix across TYPO3 12/13/14.3 LTS, dev-dependency consolidation via typo3-ci-workflows meta-package, or debugging CI failures.
Also triggers on: testing-framework setup, ensure proper testing, test matrix, integration testing, e2e testing, coverage, test generation.
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
From scratch, writing a specific test, debugging a failure
Test Type Selection
Type
Use When
Speed
Unit
Pure logic, no DB, validators, utilities
Fast
Functional
DB interactions, repositories, controllers
Medium
Architecture
Layer constraints, dependency rules (phpat)
Fast
E2E (Playwright)
User workflows, browser, accessibility
Slow
Integration
HTTP client, API mocking, OAuth flows
Medium
Mutation
Test quality, 70%+ coverage
CI/Release
runTests.sh - Mandatory
Build/Scripts/runTests.sh is mandatory: executable, with -s (suite) and -p (PHP version).
Git Hooks
Netresearch default: Build/captainhook.json (declared in composer.json extra.captainhook.config). Verify: ls Build/captainhook.json .git/hooks/pre-commit (see references/captainhook-setup.md).
Commands
# Setup (from skill dir)
scripts/setup-testing.sh [--with-e2e]
scripts/validate-setup.sh
scripts/generate-test.sh <Type> <Class>
# Run (always via runTests.sh)
Build/Scripts/runTests.sh -s unit|functional|phpstan|cgl|mutation|ci
Verify tests fail before fix, pass after. Bug fixes use the strict TDD loop in references/tdd-discipline.md — no "tested/verified" claims without pasted output.
Scoring Requirements
Unit tests required (70%+ coverage). Functional tests required for DB operations. phpat required for architecture points. PHPStan level 10.