一、工作環境
windows10下
Qt編譯器
二、Catch2的安裝
閑話部分:由於工作的需要,我不得不開始我的Catch2的開發歷程。眾所周知,開發中最艱難的就是環境的安裝,可以說環境的安裝是最讓編程人員感到自閉的一個環節。尤其是當你看不懂錯誤信息,然后上網還查不到相應的錯誤解決方案的時候,特別讓人抓狂。好了,閑話就說到這,開始我們的Catch2安裝吧。
問題高光時刻:①# CATCH_CONFIG_MAIN 無法使用,不能提供main函數(因為你有可能下載的是catch2 V3版本,這個版本不支持這個定義了。)
②在Qt編譯環境下運行,顯示很多的函數未定義。(你在#include<catch.hpp>之前添加c++的編譯環境#include<iostream>,然后運行案例就行了。但它是沒有輸出的,因為它定義的輸出是在命令窗口中的。)
安裝步驟:
1、簡單了解catch2,它是一個c++的單元測試工具,它的安裝僅僅只需要一個catch.hpp的頭文件即可。因為它所需的函數庫C++的編譯環境都給它備全了。
2、獲取catch.hpp這個頭文件(文件獲取),僅需獲取catch.hpp即可。其他不需要。

3、測試是否安裝成功(Qt環境下運行),我建立的是cmake項目。先看看我的文件目錄。

將main.cpp文件的內容覆蓋,這里我給出我的main.cpp的測試代碼。(直接運行項目即可,但是沒有輸出。)
#include "mainwindow.h" #include<iostream> #define CATCH_CONFIG_MAIN #include<catch.hpp> #include <QApplication> using namespace std; unsigned int Factorial( unsigned int number ) { return number <= 1 ? number : Factorial(number-1)*number; } TEST_CASE( "Factorials are computed", "[factorial]" ) { REQUIRE( Factorial(1) == 1 ); REQUIRE( Factorial(2) == 2 ); REQUIRE( Factorial(3) == 6 ); REQUIRE( Factorial(10) == 3628800 ); }
4、給出在命令行中的測試代碼(將這個文件命名為010-TestCase.cpp)
#define CATCH_CONFIG_MAIN #include<catch.hpp> unsigned int Factorial( unsigned int number ) { return number <= 1 ? number : Factorial(number-1)*number; } TEST_CASE( "Factorials are computed", "[factorial]" ) { REQUIRE( Factorial(1) == 1 ); REQUIRE( Factorial(2) == 2 ); REQUIRE( Factorial(3) == 6 ); REQUIRE( Factorial(10) == 3628800 ); }
命令行中執行這個測試案例(如果你的電腦里不可以使用g++,可以按照教程進行安裝)
g++ -std=c++11 -Wall -I$(CATCH_SINGLE_INCLUDE) -o 010-TestCase 010-TestCase.cpp && 010-TestCase --success
這樣你會看到這樣的運行結果

