使用 GTest 编写基本的 C++ 测试
起点:我们假设您已经设置了一个 基本的 ament_cmake 包,并且您想在其中添加一些测试。
在本教程中,我们将使用 gtest。
软件包设置
源代码
我们将从名为 test/tutorial_test.cpp
的文件中开始编写代码。
#include <gtest/gtest.h>
TEST(package_name, a_first_test)
{
ASSERT_EQ(4, 2 + 2);
}
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
CMakeLists.txt
if(BUILD_TESTING)
find_package(ament_cmake_gtest REQUIRED)
ament_add_gtest(${PROJECT_NAME}_tutorial_test test/tutorial_test.cpp)
target_include_directories(${PROJECT_NAME}_tutorial_test PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
ament_target_dependencies(${PROJECT_NAME}_tutorial_test
std_msgs
)
target_link_libraries(${PROJECT_NAME}_tutorial_test name_of_local_library)
endif()
测试代码被包含在 if/endif
块中,以避免在可能的情况下构建测试。ament_add_gtest
的功能与 add_executable
类似,因此您需要像平常一样调用 target_include_directories
、ament_target_dependencies
和 target_link_libraries
。