user1876942
user1876942

Reputation: 1501

Use Cmake to run CppuTests

I have used CMake to make a library and then made a test exe. After building, I would like to automatically run my test cases. Here is my CMakeLists.txt. It makes the .exe OK but does not run it. I am using Linux.

cmake_minimum_required (VERSION 2.8.7) 
project (tests)

set(LIBRARY_NAME exetests)
set(LIBRARY_SOURCES RunAllTests.cpp Tests.cpp )

set(CMAKE_CXX_FLAGS "-fPIC -Werror -O2 -std=c++0x -g")

add_executable(exetests ${LIBRARY_SOURCES})
target_link_libraries(exetests CppUTest )
target_link_libraries(exetests CppUTestExt )
target_link_libraries(exetests testLibrary )

#THIS IS WRONG.  EXE is not Run
add_custom_target( COMMAND ./exetests )

Upvotes: 3

Views: 4458

Answers (2)

augre
augre

Reputation: 340

From the documentation:

The second signature adds a custom command to a target such as a library or executable. This is useful for performing an operation before or after building the target. The command becomes part of the target and will only execute when the target itself is built. If the target is already built, the command will not execute.

add_executable(RunAllTests RunAllTests.cpp)
target_link_libraries(RunAllTests imp_cpputest LedDriverTest LedDriver sprintfTest RuntimeErrorStub)
add_custom_command( TARGET RunAllTests COMMAND cd ../bin && ./RunAllTests   POST_BUILD)

Upvotes: 1

Peter Petrik
Peter Petrik

Reputation: 10185

You can use CTest for testing of executables created by CMake. In your CMakeLists.txt, use commands enable_testing and add_test

...
enable_testing()
...
add_executable(exetests ${LIBRARY_SOURCES})
...
add_test(NAME mytest1 COMMAND exetests)

in your binary directory, compile make exetests and run testing by ctest. Some additional information could be found on CMake Wiki.

Upvotes: 5

Related Questions