Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 3.13 KB

GettingStarted.md

File metadata and controls

76 lines (54 loc) · 3.13 KB

Getting Started - Creating your main()

Contents

Introduction

This page shows how to set up the main() for test programs that use Approval Tests.

These steps are needed in order to teach Approval Tests how to name its output files automatically.

If, after following these steps, you need help with running your program, please see Troubleshooting.

Main File

The Basics

You need to include 2 lines for your main file to work.

For Catch2, it's these 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"

snippet source | anchor

For all other test files, you need:

#include "ApprovalTests.hpp"

Details

Choosing a testing framework

If you are already using one of the above testing frameworks, that is the one you should use.

If not, Approval Tests works well with all the above. Here are factors to consider.

Framework Min C++ Ease of setup IDE Support Build time
Catch2 C++11 Very easy [1], [2] Widely supported Not bad [3]
CppUTest C++11 Difficult Unknown Very Fast
doctest C++11 Very easy [1] Unknown Fast
Google Test C++11 Difficult Very widely supported Fast
Boost.Test C++11 Difficult Unknown Fast
[Boost].UT C++20 [4] Very easy [1] Unknown Fast
  1. Released as a single header file
  2. See the Starter Project
  3. Catch2 has options to speed up its builds
  4. [Boost].UT works with C++17, but the ApprovalTests interface to that library depends on std::source_location, which is a C++ 20 feature.

Back to User Guide