C++ 谷歌测试使用
我想在我的项目中使用gtest/gmock进行TDD,但不知道如何使用。我想将每个类的测试拆分为一个单独的模块,但这不起作用,因为项目只能有一个main()函数 鉴于: “lib”项目,它生成一个lib。 “main”项目,它有我的应用程序的main()函数,它做有用的事情。 “test”项目,它链接到“lib”项目,我希望所有单元测试都在这个项目中 我的问题是“test”项目只能有一个main()函数,它运行所有测试,但我希望每个模块中都有一个main()函数。 例如,我的“lib”项目有Foo和Bar类,我想独立测试这些类,在Foo_test.cc中测试Foo,在Bar_test.cc中测试Bar。据我所知,每个模块{foo_test.cc,bar_test.cc}都需要一个main()来运行它的测试,但是这个项目只能有一个main()函数 如果我的任何假设是错误的,请告诉我。如果没有简单的方法来独立测试每个类,我会感到惊讶。因为我有大约20个类,所以创建20个测试项目不是一个选项C++ 谷歌测试使用,c++,googletest,C++,Googletest,我想在我的项目中使用gtest/gmock进行TDD,但不知道如何使用。我想将每个类的测试拆分为一个单独的模块,但这不起作用,因为项目只能有一个main()函数 鉴于: “lib”项目,它生成一个lib。 “main”项目,它有我的应用程序的main()函数,它做有用的事情。 “test”项目,它链接到“lib”项目,我希望所有单元测试都在这个项目中 我的问题是“test”项目只能有一个main()函数,它运行所有测试,但我希望每个模块中都有一个main()函数。 例如,我的“lib”项目有Fo
提前谢谢在C++程序中必须有一个完全的代码<主代码> />代码>函数。所以如果你 想要为每个类
Foo
,Bar
,。。。你想测试的,然后你
必须为每个Foo
,Bar
。。。等等
类Foo
的测试运行程序必须只编译类Foo
的测试,因此您必须
将这些测试写入一个源文件或一组不同于测试源的源文件中
其他任何一类。类似地,类条等的测试运行程序
所有这些测试运行程序都将链接到包含
Foo
,Bar
,。。。等。每个测试转轮的连杆将
不从库中提取它不需要的任何对象文件
然而,没有必要为类Foo
和另一个类编写测试运行程序,这将是毫无意义的麻烦
一个用于Bar
,依此类推,以独立运行Foo
测试和Bar
测试。
对于整个库的单个测试运行程序,只需使用
--gtest_filter=
命令行选项选择Foo
测试,或
条形码
测试等读取
在手册中,在C++程序中必须有一个完全正确的代码<主代码> />代码>函数。所以如果你
想要为每个类Foo
,Bar
,。。。你想测试的,然后你
必须为每个Foo
,Bar
。。。等等
类Foo
的测试运行程序必须只编译类Foo
的测试,因此您必须
将这些测试写入一个源文件或一组不同于测试源的源文件中
其他任何一类。类似地,类条等的测试运行程序
所有这些测试运行程序都将链接到包含
Foo
,Bar
,。。。等。每个测试转轮的连杆将
不从库中提取它不需要的任何对象文件
然而,没有必要为类Foo
和另一个类编写测试运行程序,这将是毫无意义的麻烦
一个用于Bar
,依此类推,以独立运行Foo
测试和Bar
测试。
对于整个库的单个测试运行程序,只需使用
--gtest_filter=
命令行选项选择Foo
测试,或
条形码
测试等读取
在手册中。感谢您写下详细的评论。我假设测试需要链接并运行同一文件中的main()。显然,情况并非如此,任何main()都可以从所有链接的.cpp文件中运行所有测试。感谢您撰写详细的评论。我假设测试需要链接并运行同一文件中的main()。显然,情况并非如此,任何main()都可以从所有链接的.cpp文件中运行_ALL_TESTS()。