The Catch2 test framework works well with Approval Tests.
This section describes the various ways of using Approval Tests with Catch2.
Note: Approval Tests has some specific build requirements if it is built with the Ninja build generator. If you use Ninja with Approval Tests, special care is needed when setting up builds, to avoid compilation errors or test failures. If you have any problems with this, please see Troubleshooting Misconfigured Build.
Approval Tests requires that a file called the following is found:
#include <catch2/catch.hpp>
(Before v7.0.0, it required Catch.hpp
)
The quickest way to start experimenting with Approval Tests is to:
- Download the project ApprovalTests.cpp.StarterProject - via the green "Clone or Download" button at the top-right of the project site.
- Opening the project in the C++ IDE of your choice.
Each time we release a new version of Approval Tests, we update this project, so it always has the latest features.
Create a file main.cpp
and add just the following two lines:
// main.cpp:
#define APPROVALS_CATCH // This tells Approval Tests to provide a main() - only do this in one cpp file
#include "ApprovalTests.hpp"
If you have a Catch2 project with your own main.cpp
that contains the following lines, you will need to replace them with the code in the previous section.
#define CATCH_CONFIG_MAIN // remove these lines, and replace with Approval Tests lines
#include "catch2/catch.hpp"
If you have supplied your own main()
for Catch, you will need to teach it how to supply test names to Approval Tests.
You should make the following additions to your own source file that contains main()
.
// Add these two lines to the top of your main.cpp file:
#define APPROVALS_CATCH_EXISTING_MAIN
#include "ApprovalTests.hpp"