diff --git a/.gitignore b/.gitignore
index 318f83b..a9a82cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
/composer.lock
/.phpunit.cache
+/coverage
/node_modules
/public/build
/public/hot
diff --git a/README.md b/README.md
index d5d62d1..ea4cdbd 100644
--- a/README.md
+++ b/README.md
@@ -72,6 +72,10 @@ # Database
make seed # Seed database
make fresh # Fresh migrate with seeds
+# Testing
+make test # Run tests
+composer test:coverage-html # Run tests with coverage report (generates coverage/index.html)
+
# Utilities
make shell # Enter app container
make db-shell # Enter database shell
diff --git a/composer.json b/composer.json
index 8f1406a..a4197fb 100644
--- a/composer.json
+++ b/composer.json
@@ -57,6 +57,17 @@
"dev": [
"Composer\\Config::disableProcessTimeout",
"npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite"
+ ],
+ "test": [
+ "@php artisan test"
+ ],
+ "test:coverage": [
+ "Composer\\Config::disableProcessTimeout",
+ "@php -d xdebug.mode=coverage artisan test --coverage"
+ ],
+ "test:coverage-html": [
+ "Composer\\Config::disableProcessTimeout",
+ "@php -d xdebug.mode=coverage vendor/bin/phpunit --coverage-html coverage --coverage-text"
]
},
"extra": {
diff --git a/phpunit.xml b/phpunit.xml
index 24bb646..4eee333 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -15,8 +15,21 @@
app
+ src
+
+ app/Console
+ app/Exceptions
+ app/Providers
+
+
+
+
+
+
+
+