谷歌测试使用
Googletest usage
我想为我的项目使用 gtest/gmock TDD,但不知道如何使用。我想将每个 类 的测试拆分到一个单独的模块中,但这不起作用,因为该项目只能有 1 个 main() 函数。
鉴于:
'lib' 项目,生成一个库。
'main' 项目,它具有我的应用程序的 main() 函数,可以执行有用的操作。
'test' 项目,链接到 'lib' 项目,我想在这个项目中进行所有单元测试。
我的问题是 'test' 项目只能有 1 个运行所有测试的 main() 函数,但我想在每个模块中有 1 个 main() 函数。
例如,我的 'lib' 项目有 类 Foo 和 Bar,我想独立测试这些 类,在 foo_test.cc 中测试 Foo,在 [=28] 中测试 Bar =].据我了解,每个模块 {foo_test.cc, bar_test.cc} 都需要有一个运行其测试的 main() ,但项目只能有 1 个 main() 函数。
如果我的假设有误,请告诉我。如果没有简单的方法来独立测试每个 类,我会感到惊讶。因为我有 ~20 类,创建 20 个测试项目不是一个选项。
提前致谢!
C++ 程序中必须只有一个 main
函数。所以如果你
想要为每个 class Foo
, Bar
,... 测试一个 gtest test-runner 然后你
必须为每个 Foo
、Bar
、...等
编写一个单独的 test-runner 程序
class Foo
的 test-runner 必须只编译 class Foo
的测试,所以你必须
在与测试源不同的源文件或源文件集中编写这些测试
任何其他 classes。同样,test-runner 为 class Bar
,等等
所有 这些测试 运行 人将 link 到包含
Foo
、Bar
、...等的实施。每个测试的 link 年龄 运行ner 将
不要从不需要的库中提取任何目标文件。
但是 没有必要,为class Foo
和另一个写一个test-runner,这将是毫无意义的麻烦
一个用于 Bar
,依此类推,运行 Foo
测试和 Bar
独立测试。
对整个库进行单个测试 运行ner,只需使用
--gtest_filter=<pattern>
select Foo
测试的命令行选项,或者
Bar
测试等阅读 Running a Subset of the Tests
在手册中。
我想为我的项目使用 gtest/gmock TDD,但不知道如何使用。我想将每个 类 的测试拆分到一个单独的模块中,但这不起作用,因为该项目只能有 1 个 main() 函数。
鉴于: 'lib' 项目,生成一个库。 'main' 项目,它具有我的应用程序的 main() 函数,可以执行有用的操作。 'test' 项目,链接到 'lib' 项目,我想在这个项目中进行所有单元测试。
我的问题是 'test' 项目只能有 1 个运行所有测试的 main() 函数,但我想在每个模块中有 1 个 main() 函数。 例如,我的 'lib' 项目有 类 Foo 和 Bar,我想独立测试这些 类,在 foo_test.cc 中测试 Foo,在 [=28] 中测试 Bar =].据我了解,每个模块 {foo_test.cc, bar_test.cc} 都需要有一个运行其测试的 main() ,但项目只能有 1 个 main() 函数。
如果我的假设有误,请告诉我。如果没有简单的方法来独立测试每个 类,我会感到惊讶。因为我有 ~20 类,创建 20 个测试项目不是一个选项。
提前致谢!
C++ 程序中必须只有一个 main
函数。所以如果你
想要为每个 class Foo
, Bar
,... 测试一个 gtest test-runner 然后你
必须为每个 Foo
、Bar
、...等
class Foo
的 test-runner 必须只编译 class Foo
的测试,所以你必须
在与测试源不同的源文件或源文件集中编写这些测试
任何其他 classes。同样,test-runner 为 class Bar
,等等
所有 这些测试 运行 人将 link 到包含
Foo
、Bar
、...等的实施。每个测试的 link 年龄 运行ner 将
不要从不需要的库中提取任何目标文件。
但是 没有必要,为class Foo
和另一个写一个test-runner,这将是毫无意义的麻烦
一个用于 Bar
,依此类推,运行 Foo
测试和 Bar
独立测试。
对整个库进行单个测试 运行ner,只需使用
--gtest_filter=<pattern>
select Foo
测试的命令行选项,或者
Bar
测试等阅读 Running a Subset of the Tests
在手册中。