首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行RUN_ALL_TESTS()

如何运行RUN_ALL_TESTS()
EN

Stack Overflow用户
提问于 2022-08-01 11:33:53
回答 1查看 147关注 0票数 1

我正试图找出+ CLion。

我将档案解压缩到~/Documents/Libraries/googletest-main/中。安装了它,因此/usr/local/include//usr/local/lib/中相应地包含和使用了libs。

然后,用两个文件在CLion中创建一个项目:

CMakeLists.txt

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.23)
project(TestProject)

set(CMAKE_CXX_STANDARD 14)

add_executable(TestProject test.cpp)

target_link_libraries(TestProject gtest gtest_main)

test.cpp

代码语言:javascript
复制
#include "gtest/gtest.h"

TEST(BasicTests, testName) {
    EXPECT_EQ(1, 2);
}

TEST(BasicTests, testName2) {
    ASSERT_EQ(2, 2);
}

TEST(BasicTests, testName3) {
    ASSERT_EQ(3, 3);
}

TEST(BasicTests, testName4) {
    ASSERT_EQ(4, 4);
}

现在,作为CLion接口的一部分,我可以运行测试,但可以独立运行。从框架文档和教程中,我知道我不能实现main(),但是使用gtest_main.cc实现的函数(对我来说,路径是~/Documents/Libraries/googletest-main/googletest/scr/gtest_main.cc)。

一次运行所有测试需要做些什么?(通常,在教程中,框架文件位于项目文件夹中,因此可以运行函数RUN_ALL_TEST()。)

EN

回答 1

Stack Overflow用户

发布于 2022-08-01 16:05:03

gtest_main将您的代码链接到google测试,在该测试中,main函数已经为您看这里编写。

一旦构建了目标,就应该创建一个可执行文件,您可以运行该可执行文件来查看测试结果。

如果您想自己编写主函数,则应该链接到getst。然后,您的主要功能如下:

代码语言:javascript
复制
#include "gtest/gtest.h"

TEST(BasicTests, testName) {
    EXPECT_EQ(1, 2);
}

TEST(BasicTests, testName2) {
    ASSERT_EQ(2, 2);
}

TEST(BasicTests, testName3) {
    ASSERT_EQ(3, 3);
}

TEST(BasicTests, testName4) {
    ASSERT_EQ(4, 4);
}

int main(int argc, char **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

参见下面的活示例:https://godbolt.org/z/6nvzf3TWa

更新

您正在将项目链接到gtestgtest_main

代码语言:javascript
复制
target_link_libraries(TestProject gtest gtest_main)

我的意思是你应该选一个。如果您选择gtest_main,您的项目将链接到已经具有主要功能的这个文件。否则,您应该自己编写主函数。

通常,您应该创建两个项目。一个用于测试,您拥有它(TestProject),另一个用于生产,这是您的主要项目。这应该是一个新项目,并具有自己的main函数,而不是链接到gtest_main的gtest。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73193004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档