diff --git a/tests/php-unit-tests/README.md b/tests/php-unit-tests/README.md index 26c32491a..0b5d06b3d 100644 --- a/tests/php-unit-tests/README.md +++ b/tests/php-unit-tests/README.md @@ -87,6 +87,10 @@ Add annotation `@runInSeparateProcess` Each and every test case will run in a separate process. +Note : before N°6658 (3.0.4 / 3.1.1 / 3.2.0) we were also adding the `@backupGlobals disabled` +and `@preserveGlobalState disabled` annotations. This is no longer necessary as the first has this default value +already, and the second one is now set in iTopTestCase as a PHP class attribute. + #### At the test class level Add annotation `@runTestsInSeparateProcesses` Each and every test case in the class will run in a separate diff --git a/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php b/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php index c71b9c127..a1f86d44f 100644 --- a/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php +++ b/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php @@ -16,7 +16,6 @@ namespace Combodo\iTop\Test\UnitTest; use ArchivedObjectException; use CMDBObject; use CMDBSource; -use Config; use Contact; use DBObject; use DBObjectSet; @@ -31,7 +30,6 @@ use lnkFunctionalCIToTicket; use MetaModel; use Person; use Server; -use SetupUtils; use TagSetFieldData; use Ticket; use URP_UserProfile; @@ -53,6 +51,7 @@ define('TAG_ATTCODE', 'domains'); * * @since 2.7.7 3.0.1 3.1.0 N°4624 processIsolation is disabled by default and must be enabled in each test needing it (basically all tests using * iTop datamodel) + * @since 3.0.4 3.1.1 3.2.0 N°6658 move some setUp/tearDown code to the corresponding methods *BeforeClass to speed up tests process time. */ abstract class ItopDataTestCase extends ItopTestCase { @@ -911,6 +910,9 @@ abstract class ItopDataTestCase extends ItopTestCase } } + /** + * @since 3.0.4 3.1.1 3.2.0 N°6658 method creation + */ protected function assertDBChangeOpCount(string $sClass, $iId, int $iExpectedCount) { $oSearch = new \DBObjectSearch('CMDBChangeOp'); diff --git a/tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php b/tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php index c14303551..214c6c82d 100644 --- a/tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php +++ b/tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php @@ -14,12 +14,9 @@ use SetupUtils; define('DEBUG_UNIT_TEST', true); /** - * Class ItopTestCase - * * Helper class to extend for tests that DO NOT need to access the DataModel or the Database * - * @author Eric Espie - * @package Combodo\iTop\Test\UnitTest + * @since 3.0.4 3.1.1 3.2.0 N°6658 move some setUp/tearDown code to the corresponding methods *BeforeClass to speed up tests process time. */ abstract class ItopTestCase extends TestCase { @@ -27,7 +24,10 @@ abstract class ItopTestCase extends TestCase public static $DEBUG_UNIT_TEST = false; /** - * Override the default value to disable the backup of globals in case of tests run in a separate process + * @link https://docs.phpunit.de/en/9.6/annotations.html#preserveglobalstate PHPUnit `preserveGlobalState` annotation documentation + * + * @since 3.0.4 3.1.1 3.2.0 N°6658 Override default value creation so that we don't need to add the annotation on each test classes that have runInSeparateProcess. + * This parameter isn't used when test is run in the same process so ok to change it globally ! */ protected $preserveGlobalState = false; @@ -78,7 +78,9 @@ abstract class ItopTestCase extends TestCase /** * @throws \MySQLTransactionNotClosedException see N°5538 + * * @since 2.7.8 3.0.3 3.1.0 N°5538 + * @since 3.0.4 3.1.1 3.2.0 N°6658 if transaction not closed, we are now doing a rollback */ protected function tearDown(): void { @@ -94,7 +96,11 @@ abstract class ItopTestCase extends TestCase } } - /** Helper than can be called in the context of a data provider */ + /** + * Helper than can be called in the context of a data provider + * + * @since 3.0.4 3.1.1 3.2.0 N°6658 method creation + */ public static function GetAppRoot() { if (defined('APPROOT')) {