# Reference To get the most out of Catch2, start with the [tutorial](tutorial.md#top). Once you're up and running consider the following reference material. Writing tests: * [Assertion macros](assertions.md#top) * [Matchers](matchers.md#top) * [Logging macros](logging.md#top) * [Test cases and sections](test-cases-and-sections.md#top) * [Test fixtures](test-fixtures.md#top) * [Reporters](reporters.md#top) * [Event Listeners](event-listeners.md#top) * [Data Generators](generators.md#top) * [Other macros](other-macros.md#top) * [Micro benchmarking](benchmarks.md#top) Fine tuning: * [Supplying your own main()](own-main.md#top) * [Compile-time configuration](configuration.md#top) * [String Conversions](tostring.md#top) Running: * [Command line](command-line.md#top) Odds and ends: * [Frequently Asked Questions (FAQ)](faq.md#top) * [Best practices and other tips](usage-tips.md#top) * [CMake integration](cmake-integration.md#top) * [CI and other miscellaneous pieces](ci-and-misc.md#top) * [Known limitations](limitations.md#top) Other: * [Why Catch2?](why-catch.md#top) * [Migrating from v2 to v3](migrate-v2-to-v3.md#top) * [Open Source Projects using Catch2](opensource-users.md#top) * [Commercial Projects using Catch2](commercial-users.md#top) * [Contributing](contributing.md#top) * [Release Notes](release-notes.md#top) * [Deprecations and incoming changes](deprecations.md#top)