diff --git a/.gitattributes b/.gitattributes
index 9645b77e9..a2588e4f6 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -9,3 +9,4 @@ docker-compose.yml     export-ignore
 phpstan.neon           export-ignore
 phpunit.xml            export-ignore
 tests/                 export-ignore
+.phive/                export-ignore
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index a6366b71b..8ca3db465 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -40,6 +40,7 @@ jobs:
           php-version: "${{ matrix.php-version }}"
           extensions: apcu
           ini-values: apc.enable_cli=1
+          tools: phpunit:9
 
       - name: Get composer cache directory
         id: composer-cache
@@ -58,5 +59,8 @@ jobs:
       - name: Run Check configuration
         run: php data/bin/check_configuration.php
 
-      - name: Run Tests
+      - name: Run Lime Tests
         run: php data/bin/symfony symfony:test --trace
+
+      - name: Run PHPUnit Tests
+        run: phpunit
diff --git a/.gitignore b/.gitignore
index 3c17d4767..ac969d60a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,9 @@ lib/plugins/sfDoctrinePlugin/test/functional/fixtures/log/
 /vendor
 /composer.lock
 .php-cs-fixer.cache
+.phpunit.result.cache
+phpunit.xml
+/tests/fixtures/symfony/log
+
+.phive/phars.xml
+bin/phpunit
diff --git a/.phive/phars.dist.xml b/.phive/phars.dist.xml
new file mode 100644
index 000000000..bc7aaf399
--- /dev/null
+++ b/.phive/phars.dist.xml
@@ -0,0 +1,4 @@
+
+
+  
+
diff --git a/composer.json b/composer.json
index 096711cad..85c4a0b94 100755
--- a/composer.json
+++ b/composer.json
@@ -8,7 +8,8 @@
         "swiftmailer/swiftmailer": "^5.2 || ^6.0"
     },
     "require-dev": {
-        "psr/log": "*"
+        "psr/log": "*",
+        "symfony/phpunit-bridge": "^7.0"
     },
     "autoload": {
         "files": ["autoload.php"]
@@ -26,5 +27,13 @@
     "replace": {
         "lexpress/symfony1": "^1.5"
     },
+    "scripts": {
+        "test": [
+            "@test:lime",
+            "@test:phpunit"
+        ],
+        "test:lime": "php data/bin/symfony symfony:test --trace",
+        "test:phpunit": "./bin/phpunit"
+    },
     "bin": ["data/bin/symfony"]
 }
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 000000000..b7e812945
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,33 @@
+
+
+    
+        
+        
+        
+        
+    
+
+    
+        
+            ./tests/
+        
+    
+
+    
+        
+            ./lib/
+        
+        
+            ./lib/plugins/sfDoctrinePlugin/data/**
+            ./lib/plugins/sfDoctrinePlugin/lib/vendor/**
+            ./lib/task/generator/skeleton/**
+            ./lib/vendor/swiftmailer/**
+        
+    
+
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
new file mode 100644
index 000000000..e4dbb773a
--- /dev/null
+++ b/tests/bootstrap.php
@@ -0,0 +1,17 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Bridge\PhpUnit\DeprecationErrorHandler;
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+if ('disabled' !== getenv('SYMFONY_DEPRECATIONS_HELPER')) {
+    DeprecationErrorHandler::register(getenv('SYMFONY_DEPRECATIONS_HELPER'));
+}