使用 GTest 用 C++ 编写基本测试
起点:我们假设您已经设置了 basic ament_cmake package,并且想要向其中添加一些测试。
在本教程中,我们将使用 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();
}
package.xml
将以下行添加到 ``package.xml``中
<test_depend>ament_cmake_gtest</test_depend>
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>
)
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
。
运行测试
有关运行测试和检查测试结果的更多信息,请参阅 关于如何从命令行 <CLI> 运行测试的教程。