CMake CTestプロジェクトの作成
CMakeエンジニアリングの最上位ディレクトリ内のCMakeLists.txtファイルに最後の行を追加し、ディレクトリ構造にtestディレクトリが含まれ、コンパイルが完了するとbuildディレクトリの下でtest_が生成されます.binディレクトリ.
step2
テストディレクトリの下にあるCMakeLists.txtファイルにはsrcディレクトリの下のように構成されています.必要なライブラリは、中に追加されます.ただし、以下の設定が必要です.
step3
テストディレクトリの下にmain関数を作成し、テストコードを作成します.boostのtestフレームワークを使ってみましたが、まだ成功していません.そのため、マクロ(CppCMSの著者Artyomから)を使用しました.
このマクロを使用するのは簡単です.たとえば、次のようにします.
step4
buildディレクトリコンパイルに入り、コンパイルに成功したらtest_に入ります.binディレクトリはctestを実行し、画面には簡単な結果情報が表示されます.
さらにTesting/Temporary/ディレクトリが生成する、このディレクトリにはいくつかのファイル、CTestCostDataが含まれている.txt LastTest.log LastTestsFailed.log、詳細なテスト情報はすべてその中にあります.
cmake_minimum_required(VERSION 2.8)
project (your_project_name)
add_subdirectory(src bin)
add_subdirectory(test test_bin)
step2
テストディレクトリの下にあるCMakeLists.txtファイルにはsrcディレクトリの下のように構成されています.必要なライブラリは、中に追加されます.ただし、以下の設定が必要です.
include(CheckFunctionExists)
include(CheckCXXSourceCompiles)
include(CheckLibraryExists)
include(CPack)
enable_testing()
...
add_test(name your_test command your_test)
step3
テストディレクトリの下にmain関数を作成し、テストコードを作成します.boostのtestフレームワークを使ってみましたが、まだ成功していません.そのため、マクロ(CppCMSの著者Artyomから)を使用しました.
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2008-2010 Artyom Beilis (Tonkikh) <[email protected]>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef CPPCMS_TEST_H
#define CPPCMS_TEST_H
#include <stdexcept>
#include <sstream>
#define TEST(X) \
do { \
if(X) break; \
std::ostringstream oss; \
oss << "Error " << __FILE__ << ":"<<__LINE__ << " "<<#X; \
throw std::runtime_error(oss.str()); \
}while(0)
#endif
このマクロを使用するのは簡単です.たとえば、次のようにします.
TEST(result >= 66);
step4
buildディレクトリコンパイルに入り、コンパイルに成功したらtest_に入ります.binディレクトリはctestを実行し、画面には簡単な結果情報が表示されます.
Test project /home/chenshu/work/CommonService/trunk/c++/PipeLine2/build/test_bin
Start 1: similarity_test
1/1 Test #1: similarity_test ..................***Failed 0.31 sec
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 0.89 sec
The following tests FAILED:
1 - similarity_test (Failed)
Errors while running CTest
さらにTesting/Temporary/ディレクトリが生成する、このディレクトリにはいくつかのファイル、CTestCostDataが含まれている.txt LastTest.log LastTestsFailed.log、詳細なテスト情報はすべてその中にあります.