catch2/3.5.4

A modern, C++-native, header-only, framework for unit-tests, TDD and BDD
Recipe info
2024-04-11

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
catch2/3.5.4

Using catch2

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
catch2/3.5.4
[generators]
CMakeDeps
CMakeToolchain
[layout]
cmake_layout
from conan import ConanFile
from conan.tools.cmake import cmake_layout


class ExampleRecipe(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    generators = "CMakeDeps", "CMakeToolchain"

    def requirements(self):
        self.requires("catch2/3.5.4")

    def layout(self):
        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing

Useful information to take into account to consume this library:


These are the main declared targets:

  • CMake package name(s): Catch2
  • CMake target name(s): Catch2::Catch2WithMain
  • _catch2 => Catch2::Catch2
    catch2_with_main => Catch2::Catch2WithMain
    
  • pkg-config file name(s): catch2-with-main.pc
  • _catch2 => catch2.pc
    catch2_with_main => catch2-with-main.pc
    

A simple use case using the CMake file name and the global target:

# ...
find_package(Catch2 REQUIRED)
# ...
target_link_libraries(YOUR_TARGET Catch2::Catch2WithMain)

These are all the available headers. Some of these ones might be non-public; make sure of it by visiting the catch2 homepage listed above:

#include "catch2/benchmark/catch_benchmark.hpp"
#include "catch2/benchmark/catch_benchmark_all.hpp"
#include "catch2/benchmark/catch_chronometer.hpp"
#include "catch2/benchmark/catch_clock.hpp"
#include "catch2/benchmark/catch_constructor.hpp"
#include "catch2/benchmark/catch_environment.hpp"
#include "catch2/benchmark/catch_estimate.hpp"
#include "catch2/benchmark/catch_execution_plan.hpp"
#include "catch2/benchmark/catch_optimizer.hpp"
#include "catch2/benchmark/catch_outlier_classification.hpp"
#include "catch2/benchmark/catch_sample_analysis.hpp"
#include "catch2/benchmark/detail/catch_analyse.hpp"
#include "catch2/benchmark/detail/catch_benchmark_function.hpp"
#include "catch2/benchmark/detail/catch_benchmark_stats.hpp"
#include "catch2/benchmark/detail/catch_benchmark_stats_fwd.hpp"
#include "catch2/benchmark/detail/catch_complete_invoke.hpp"
#include "catch2/benchmark/detail/catch_estimate_clock.hpp"
#include "catch2/benchmark/detail/catch_measure.hpp"
#include "catch2/benchmark/detail/catch_repeat.hpp"
#include "catch2/benchmark/detail/catch_run_for_at_least.hpp"
#include "catch2/benchmark/detail/catch_stats.hpp"
#include "catch2/benchmark/detail/catch_timing.hpp"
#include "catch2/catch_all.hpp"
#include "catch2/catch_approx.hpp"
#include "catch2/catch_assertion_info.hpp"
#include "catch2/catch_assertion_result.hpp"
#include "catch2/catch_config.hpp"
#include "catch2/catch_get_random_seed.hpp"
#include "catch2/catch_message.hpp"
#include "catch2/catch_section_info.hpp"
#include "catch2/catch_session.hpp"
#include "catch2/catch_tag_alias.hpp"
#include "catch2/catch_tag_alias_autoregistrar.hpp"
#include "catch2/catch_template_test_macros.hpp"
#include "catch2/catch_test_case_info.hpp"
#include "catch2/catch_test_macros.hpp"
#include "catch2/catch_test_spec.hpp"
#include "catch2/catch_timer.hpp"
#include "catch2/catch_tostring.hpp"
#include "catch2/catch_totals.hpp"
#include "catch2/catch_translate_exception.hpp"
#include "catch2/catch_user_config.hpp"
#include "catch2/catch_version.hpp"
#include "catch2/catch_version_macros.hpp"
#include "catch2/generators/catch_generator_exception.hpp"
#include "catch2/generators/catch_generators.hpp"
#include "catch2/generators/catch_generators_adapters.hpp"
#include "catch2/generators/catch_generators_all.hpp"
#include "catch2/generators/catch_generators_random.hpp"
#include "catch2/generators/catch_generators_range.hpp"
#include "catch2/interfaces/catch_interfaces_all.hpp"
#include "catch2/interfaces/catch_interfaces_capture.hpp"
#include "catch2/interfaces/catch_interfaces_config.hpp"
#include "catch2/interfaces/catch_interfaces_enum_values_registry.hpp"
#include "catch2/interfaces/catch_interfaces_exception.hpp"
#include "catch2/interfaces/catch_interfaces_generatortracker.hpp"
#include "catch2/interfaces/catch_interfaces_registry_hub.hpp"
#include "catch2/interfaces/catch_interfaces_reporter.hpp"
#include "catch2/interfaces/catch_interfaces_reporter_factory.hpp"
#include "catch2/interfaces/catch_interfaces_tag_alias_registry.hpp"
#include "catch2/interfaces/catch_interfaces_test_invoker.hpp"
#include "catch2/interfaces/catch_interfaces_testcase.hpp"
#include "catch2/internal/catch_assertion_handler.hpp"
#include "catch2/internal/catch_case_insensitive_comparisons.hpp"
#include "catch2/internal/catch_case_sensitive.hpp"
#include "catch2/internal/catch_clara.hpp"
#include "catch2/internal/catch_commandline.hpp"
#include "catch2/internal/catch_compare_traits.hpp"
#include "catch2/internal/catch_compiler_capabilities.hpp"
#include "catch2/internal/catch_config_android_logwrite.hpp"
#include "catch2/internal/catch_config_counter.hpp"
#include "catch2/internal/catch_config_prefix_messages.hpp"
#include "catch2/internal/catch_config_static_analysis_support.hpp"
#include "catch2/internal/catch_config_uncaught_exceptions.hpp"
#include "catch2/internal/catch_config_wchar.hpp"
#include "catch2/internal/catch_console_colour.hpp"
#include "catch2/internal/catch_console_width.hpp"
#include "catch2/internal/catch_container_nonmembers.hpp"
#include "catch2/internal/catch_context.hpp"
#include "catch2/internal/catch_debug_console.hpp"
#include "catch2/internal/catch_debugger.hpp"
#include "catch2/internal/catch_decomposer.hpp"
#include "catch2/internal/catch_enforce.hpp"
#include "catch2/internal/catch_enum_values_registry.hpp"
#include "catch2/internal/catch_errno_guard.hpp"
#include "catch2/internal/catch_exception_translator_registry.hpp"
#include "catch2/internal/catch_fatal_condition_handler.hpp"
#include "catch2/internal/catch_floating_point_helpers.hpp"
#include "catch2/internal/catch_getenv.hpp"
#include "catch2/internal/catch_is_permutation.hpp"
#include "catch2/internal/catch_istream.hpp"
#include "catch2/internal/catch_jsonwriter.hpp"
#include "catch2/internal/catch_lazy_expr.hpp"
#include "catch2/internal/catch_leak_detector.hpp"
#include "catch2/internal/catch_list.hpp"
#include "catch2/internal/catch_logical_traits.hpp"
#include "catch2/internal/catch_message_info.hpp"
#include "catch2/internal/catch_meta.hpp"
#include "catch2/internal/catch_move_and_forward.hpp"
#include "catch2/internal/catch_noncopyable.hpp"
#include "catch2/internal/catch_optional.hpp"
#include "catch2/internal/catch_output_redirect.hpp"
#include "catch2/internal/catch_parse_numbers.hpp"
#include "catch2/internal/catch_platform.hpp"
#include "catch2/internal/catch_polyfills.hpp"
#include "catch2/internal/catch_preprocessor.hpp"
#include "catch2/internal/catch_preprocessor_internal_stringify.hpp"
#include "catch2/internal/catch_preprocessor_remove_parens.hpp"
#include "catch2/internal/catch_random_floating_point_helpers.hpp"
#include "catch2/internal/catch_random_integer_helpers.hpp"
#include "catch2/internal/catch_random_number_generator.hpp"
#include "catch2/internal/catch_random_seed_generation.hpp"
#include "catch2/internal/catch_reporter_registry.hpp"
#include "catch2/internal/catch_reporter_spec_parser.hpp"
#include "catch2/internal/catch_result_type.hpp"
#include "catch2/internal/catch_reusable_string_stream.hpp"
#include "catch2/internal/catch_run_context.hpp"
#include "catch2/internal/catch_section.hpp"
#include "catch2/internal/catch_sharding.hpp"
#include "catch2/internal/catch_singletons.hpp"
#include "catch2/internal/catch_source_line_info.hpp"
#include "catch2/internal/catch_startup_exception_registry.hpp"
#include "catch2/internal/catch_stdstreams.hpp"
#include "catch2/internal/catch_stream_end_stop.hpp"
#include "catch2/internal/catch_string_manip.hpp"
#include "catch2/internal/catch_stringref.hpp"
#include "catch2/internal/catch_tag_alias_registry.hpp"
#include "catch2/internal/catch_template_test_registry.hpp"
#include "catch2/internal/catch_test_case_info_hasher.hpp"
#include "catch2/internal/catch_test_case_registry_impl.hpp"
#include "catch2/internal/catch_test_case_tracker.hpp"
#include "catch2/internal/catch_test_failure_exception.hpp"
#include "catch2/internal/catch_test_macro_impl.hpp"
#include "catch2/internal/catch_test_registry.hpp"
#include "catch2/internal/catch_test_run_info.hpp"
#include "catch2/internal/catch_test_spec_parser.hpp"
#include "catch2/internal/catch_textflow.hpp"
#include "catch2/internal/catch_to_string.hpp"
#include "catch2/internal/catch_uncaught_exceptions.hpp"
#include "catch2/internal/catch_uniform_floating_point_distribution.hpp"
#include "catch2/internal/catch_uniform_integer_distribution.hpp"
#include "catch2/internal/catch_unique_name.hpp"
#include "catch2/internal/catch_unique_ptr.hpp"
#include "catch2/internal/catch_void_type.hpp"
#include "catch2/internal/catch_wildcard_pattern.hpp"
#include "catch2/internal/catch_windows_h_proxy.hpp"
#include "catch2/internal/catch_xmlwriter.hpp"
#include "catch2/matchers/catch_matchers.hpp"
#include "catch2/matchers/catch_matchers_all.hpp"
#include "catch2/matchers/catch_matchers_container_properties.hpp"
#include "catch2/matchers/catch_matchers_contains.hpp"
#include "catch2/matchers/catch_matchers_exception.hpp"
#include "catch2/matchers/catch_matchers_floating_point.hpp"
#include "catch2/matchers/catch_matchers_predicate.hpp"
#include "catch2/matchers/catch_matchers_quantifiers.hpp"
#include "catch2/matchers/catch_matchers_range_equals.hpp"
#include "catch2/matchers/catch_matchers_string.hpp"
#include "catch2/matchers/catch_matchers_templated.hpp"
#include "catch2/matchers/catch_matchers_vector.hpp"
#include "catch2/matchers/internal/catch_matchers_impl.hpp"
#include "catch2/reporters/catch_reporter_automake.hpp"
#include "catch2/reporters/catch_reporter_common_base.hpp"
#include "catch2/reporters/catch_reporter_compact.hpp"
#include "catch2/reporters/catch_reporter_console.hpp"
#include "catch2/reporters/catch_reporter_cumulative_base.hpp"
#include "catch2/reporters/catch_reporter_event_listener.hpp"
#include "catch2/reporters/catch_reporter_helpers.hpp"
#include "catch2/reporters/catch_reporter_json.hpp"
#include "catch2/reporters/catch_reporter_junit.hpp"
#include "catch2/reporters/catch_reporter_multi.hpp"
#include "catch2/reporters/catch_reporter_registrars.hpp"
#include "catch2/reporters/catch_reporter_sonarqube.hpp"
#include "catch2/reporters/catch_reporter_streaming_base.hpp"
#include "catch2/reporters/catch_reporter_tap.hpp"
#include "catch2/reporters/catch_reporter_teamcity.hpp"
#include "catch2/reporters/catch_reporter_xml.hpp"
#include "catch2/reporters/catch_reporters_all.hpp"