26

私は非常に単純なC++ライブラリ(1つのヘッダーファイル、1つの.cppファイル)を持っています。GoogleC++テストフレームワークを使用してこのプロジェクトの単体テストを作成したいと思います。

ディレクトリ構造は次のとおりです。

~/project1
 |
 |-- project1.cpp
 |-- project1.h
 |-- project1_unittests.cpp
 \-- CMakeLists.txt

私は自分のmain()関数を書くつもりはありません。入門書に記載されているように、gtest_mainとリンクしたいと思います。CMakeLists.txtには何を含める必要がありますか?

4

2 に答える 2

26

CMakeの組み込みテストサブシステムを有効にします。

# For make-based builds, defines make target named test.
# For Visual Studio builds, defines Visual Studio project named RUN_TESTS.
enable_testing()

単体テストを実行する実行可能ファイルをコンパイルし、gtestおよびgtest_mainとリンクします。

add_executable(runUnitTests
    project1_unittests.cpp
)
target_link_libraries(runUnitTests gtest gtest_main)

この実行可能ファイルを実行するテストを追加します。

add_test(
    NAME runUnitTests
    COMMAND runUnitTests
)
于 2011-05-05T17:00:39.747 に答える
0

これが最も単純なものです、

1.簡単なソースファイルを作成し、

$ cat simplegtest.cpp 

#include<gtest/gtest.h>
TEST(Mytest, failing_test){
    EXPECT_TRUE(false);
}

2.以下のコマンドを使用してコンパイルします。

$ LDLIBS="-lgtest_main -lgtest" make simplegtest
g++     simplegtest.cpp  -lgtest_main -lgtest -o simplegtest

3.以下のコマンドを使用してテスト実行可能ファイルを実行します。

$ ./simplegtest 
Running main() from /home/prashant/work/thirdparty/googletest-release-1.8.1/googletest/src/gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from Mytest
[ RUN      ] Mytest.failing_test
simplegtest.cpp:4: Failure
Value of: false
  Actual: false
Expected: true
[  FAILED  ] Mytest.failing_test (0 ms)
[----------] 1 test from Mytest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Mytest.failing_test

 1 FAILED TEST
于 2021-04-22T19:13:54.277 に答える