---
title: "Breaking: #83889 - E_NOTICE free unit testing"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-83889"
source: "Changelog/9.2/Breaking-83889-E_NOTICEFreeUnitTesting.rst"
typo3-version: "9.2"
typo3-major: 9
type: "breaking"
issue: 83889
forge: "https://forge.typo3.org/issues/83889"
tags: ["PHP-API", "FullyScanned"]
rendered: "2026-09-20T05:05:02+00:00"
---

# Breaking: #83889 - E_NOTICE free unit testing {#breaking-83889}

See [forge#83889](https://forge.typo3.org/issues/83889)

## Description {#description}

Writing unit tests and executing them using the `typo3/testing-framework`
now requires the system under test to no longer raise PHP `E_NOTICE`
level errors, or the test fails.

## Impact {#impact}

This is a first step towards a PHP notice free TYPO3 core.

## Affected Installations {#affected-installations}

Extensions that use the TYPO3 v9 compatible `typo3/testing-framework`
package in a version >= 3.0.0 may see failing unit tests if the tested
class raises `E_NOTICE` errors.

## Migration {#migration}

The best solution is to fix the unit test and/or the system under test
to no longer raise `E_NOTICE` level PHP errors.

In a transition phase, a single unit test case file can set a
property to still suppress E_NOTICE warnings:

```php
class FooTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
{
    /**
     * Subject is not notice free, disable E_NOTICES
     */
    protected static $suppressNotices = true;
}
```

Note that this property is deprecated and will be removed from
`UnitTestCase` as soon as TYPO3 core does not need it
anymore.
