# Pest > Pest is an elegant PHP testing framework with a focus on simplicity, designed to bring the joy of testing to PHP. - [Full Documentation](https://pestphp.com/llms-full.txt): Complete Pest documentation in a single file ## What's New - [Pest 5 Now Available](https://pestphp.com/docs/pest5-now-available/llms.txt): Today, we're thrilled to announce the release of Pest 5 — built on PHP 8.4 and PHPUnit 13, introducing the Tia Engine... ## Getting Started - [Installation](https://pestphp.com/docs/installation/llms.txt): Installing the Pest PHP testing framework is a simple process you may complete in a few steps. - [Editor Setup](https://pestphp.com/docs/editor-setup/llms.txt): An editor plugin can enhance your experience when working with Pest, adding helpful functionality on top of your edit... - [Writing Tests](https://pestphp.com/docs/writing-tests/llms.txt): Next let's get a brief overview of how to write tests using Pest. - [Expectations](https://pestphp.com/docs/expectations/llms.txt): Set expectations with Pest's expressive expectation API to specify the outcome of a test and surface any deviation fr... - [Hooks](https://pestphp.com/docs/hooks/llms.txt): Hooks let you run setup and teardown actions before and after each test or file, keeping your tests clean and free of... - [Datasets](https://pestphp.com/docs/datasets/llms.txt): Define an array of test data and Pest will run the same test for each set automatically, freeing you from repeating t... - [Exceptions](https://pestphp.com/docs/exceptions/llms.txt): When you need to check that your code throws an exception or error, Pest's throws() method makes it painless. - [Filtering Tests](https://pestphp.com/docs/filtering-tests/llms.txt): By default, Pest runs your entire test suite, yet you may filter down to exactly the tests you wish to run. - [Skipping Tests](https://pestphp.com/docs/skipping-tests/llms.txt): Sometimes you may need to temporarily disable a test. - [Optimizing Tests](https://pestphp.com/docs/optimizing-tests/llms.txt): Pest offers several optimization techniques — parallel testing, profiling, sharding, and a compact printer — to help ... - [Continuous Integration](https://pestphp.com/docs/continuous-integration/llms.txt): Since `pestphp/pest` is included in your Composer development dependencies, you may run your test suite within the de... ## Digging Deeper - [Configuring Tests](https://pestphp.com/docs/configuring-tests/llms.txt): The `Pest.php` configuration file lives in your project's `tests` directory and defines your test suite setup, includ... - [Grouping Tests](https://pestphp.com/docs/grouping-tests/llms.txt): Assign test folders to named groups with Pest's group() method so you may run a set of related or slow tests on their... - [Global Hooks](https://pestphp.com/docs/global-hooks/llms.txt): Define hooks once in your Pest.php configuration file and share them across your entire test suite, keeping repetitiv... - [Custom Helpers](https://pestphp.com/docs/custom-helpers/llms.txt): When transitioning to a functional approach for writing tests, you may convert the helpers that used to be protected ... - [Custom Expectations](https://pestphp.com/docs/custom-expectations/llms.txt): When you find yourself writing the same expectations repeatedly between tests, you may extract them into convenient c... - [Mocking](https://pestphp.com/docs/mocking/llms.txt): When testing your applications, you may wish to "mock" specific classes to prevent them from being invoked during a p... - [Snapshot Testing](https://pestphp.com/docs/snapshot-testing/llms.txt): Snapshot testing is a convenient way to test your code by comparing a given expectation value against a previously st... - [Browser Testing](https://pestphp.com/docs/browser-testing/llms.txt): Browser testing lets you drive a real browser to ensure your application works correctly across different browsers an... - [Agent](https://pestphp.com/docs/agent/llms.txt): The Agent plugin gives AI coding agents a single command to verify that a change actually works — running inside your... - [Architecture Testing](https://pestphp.com/docs/arch-testing/llms.txt): Architecture testing enables you to specify expectations that test whether your application adheres to a set of archi... - [Stress Testing](https://pestphp.com/docs/stress-testing/llms.txt): Stress testing inspects the stability and reliability of your application under realistic or extreme conditions, so y... - [Evals](https://pestphp.com/docs/evals/llms.txt): Pest's Evals plugin lets you evaluate the quality of LLM agents and AI-generated output directly from your test suite... - [Test Coverage](https://pestphp.com/docs/test-coverage/llms.txt): Test coverage measures the percentage of your code that is executed during testing, helping you identify the parts of... - [Type Coverage](https://pestphp.com/docs/type-coverage/llms.txt): Type Coverage is a metric used to measure the percentage of code that is covered by type declarations, helping you id... - [Mutation Testing](https://pestphp.com/docs/mutation-testing/llms.txt): Mutation Testing evaluates the quality of your test suite by introducing small changes to your source code and checki... - [Tia Engine](https://pestphp.com/docs/tia/llms.txt): The Tia Engine (Test Impact Analysis) dramatically reduces the time it takes to run your test suite by re-running onl... - [Rector](https://pestphp.com/docs/rector/llms.txt): Pest's Rector plugin provides automated refactoring rules powered by Rector to modernize your test code and upgrade b... - [PHPStan](https://pestphp.com/docs/phpstan/llms.txt): Pest's PHPStan plugin teaches PHPStan about Pest, providing accurate type inference for your tests and expectations, ... - [Plugins](https://pestphp.com/docs/plugins/llms.txt): Discover the official and community plugins we endorse, adding namespaced functions, console commands, custom expecta... - [Team Management](https://pestphp.com/docs/team-management/llms.txt): Manage tasks and todos with your team directly from the console — create, assign, and track them without leaving your... - [Profanity](https://pestphp.com/docs/profanity/llms.txt): Pest's Profanity plugin scans your codebase for profanity in places like comments, constants, and properties, helping... ## Advanced Topics - [CLI API Reference](https://pestphp.com/docs/cli-api-reference/llms.txt): For your convenience, this chapter provides a complete reference of every CLI option available in Pest. - [Test Dependencies](https://pestphp.com/docs/test-dependencies/llms.txt): Sometimes a test requires certain preconditions or events to occur before it runs, or else it will not succeed — Pest... - [Creating Plugins](https://pestphp.com/docs/creating-plugins/llms.txt): In this chapter, we'll discuss how to create your own Pest plugins and share them with the community. - [Higher Order Testing](https://pestphp.com/docs/higher-order-testing/llms.txt): An optional, elegant technique for simplifying your tests by chaining methods directly onto it() and test(), keeping ... ## Optional - [Video Resources](https://pestphp.com/docs/video-resources/llms.txt): A curated collection of conference talks, courses, and community videos to help you learn Pest and testing through vi... - [Support Policy](https://pestphp.com/docs/support-policy/llms.txt): As an open-source project, we strive to resolve every reported bug or issue to the best of our abilities, while being... - [Upgrade Guide](https://pestphp.com/docs/upgrade-guide/llms.txt): Learn how to upgrade your test suite to the latest major version of Pest. - [Migration From PHPUnit Guide](https://pestphp.com/docs/migrating-from-phpunit-guide/llms.txt): Migrating from PHPUnit to Pest is a simple process you may complete in a few steps. - [Community Guide](https://pestphp.com/docs/community-guide/llms.txt): Our project aims to develop the world's finest testing framework that not only establishes itself as the standard cho... - [Pest v4 is Here! Now with Browser Testing](https://pestphp.com/docs/pest-v4-is-here-now-with-browser-testing/llms.txt): Today, we're thrilled to announce Pest v4 — our biggest release yet, featuring powerful new browser testing with para... - [Pest v3 Now Available](https://pestphp.com/docs/pest3-now-available/llms.txt): Today, we're thrilled to announce the release of Pest 3 — introducing Mutation Testing, Arch Presets, Team Management... - [Announcing Stressless](https://pestphp.com/docs/announcing-stressless/llms.txt): We are thrilled to announce the release of a brand new plugin for Pest PHP: Stressless - it brings the power of stres... - [Pest's Spicy Summer Release](https://pestphp.com/docs/pest-spicy-summer-release/llms.txt): Pest's Spicy Summer release is here — snapshot testing, describe blocks, type coverage, and more. - [Announcing Pest 2.0](https://pestphp.com/docs/announcing-pest2/llms.txt): The Pest team is thrilled to unveil the release of Pest 2.0 after a development period of 18 months and over 500 comm... - [Why Pest](https://pestphp.com/docs/why-pest/llms.txt): Discover why Pest is the most elegant testing framework for PHP, designed to make the testing process enjoyable.