icecave/archer
Icecave Archer is a lightweight PHP testing framework for writing concise, script-style tests with built-in assertions and fixtures. It provides a simple alternative to PHPUnit for small projects, rapid prototyping, and readable test suites.
Archer is not a Laravel package. It is a convention-driven CLI tool for PHP project testing, CI, and documentation. For a Laravel developer, its day-to-day leverage is low: use it only when maintaining a standalone PHP library or a legacy Icecave-style package, not inside a modern Laravel application.
Minimal steps:
vendor/icecave/archer/README.mdvendor/icecave/archer/composer.jsonvendor/bin/archer --helpcomposer require --dev icecave/archer
If Composer reports PHP or PHPUnit conflicts, stop there. Do not force it into a Laravel app.vendor/bin/archer --help
{
"scripts": {
"test": "php artisan test",
"test:archer": "archer test"
}
}
First useful use case: a small standalone Composer package with a conventional src/ and test layout, where you want one command to run tests and generate API documentation in CI. For a Laravel app, your first use case should remain php artisan test with PHPUnit or Pest.
config/app.php is meaningless.php artisan test.src/ and test/ layout before adopting it.{
"scripts": {
"test": "php artisan test",
"test:legacy": "archer test",
"docs:legacy": "archer docs"
}
}
vendor/ or forking unless you are prepared to maintain the fork.composer why-not icecave/archer and check against Laravel 10/11, PHP 8.x, and modern PHPUnit.tests/Feature, tests/Unit, phpunit.xml, Artisan bootstrapping, and Pest conventions. Archer may expect a different layout, so do not assume it can discover Laravel tests correctly.archer test fails, run vendor/bin/phpunit directly. If docs fail, inspect the generated command or source under vendor/icecave/archer/src. Use --help on the Archer binary before guessing command names.composer install --no-dev, and pin the PHP platform in composer.json if you must keep a legacy CI job stable.test script. In a Laravel project, that would bypass php artisan test. Reserve archer test for an explicitly named legacy workflow.How can I help you explore Laravel packages today?