谷歌测试 - 课前

Rat*_*Rat 11 c++ unit-testing googletest

我正在运行谷歌测试.

我需要像课前一样的东西.我有SetUp()TearDown()函数,但它们在每次测试之前和之后运行.现在我需要一些全局的东西 - 比如ctor,在类加载时应该只运行一次.

Ant*_*rez 17

您可以定义静态成员函数void SetUpTestCase(),并void TearDownTestCase()在每个灯具类,即在每一类衍生::testing::Test.

在运行夹具中的所有测试之前和之后,该代码将仅针对每个夹具运行一次.

检查文档.

  • 请注意,在较新版本的 gtest 中,您可能需要使用 `SetUpTestSuite()` 和 `TearDownTestSuite()` 方法来代替。 (3认同)
  • @GuyAvraham:AFAIK在框架中没有这样的钩子函数可以执行此操作。您可能需要自己构建它,方法是为`:: testing :: Test`定义一个子类,然后使您的测试类取而代之。 (2认同)

Mar*_*vic 7

从类继承::testing::Environment和重写方法SetUpTearDown,这些方法将包含代码的全局设置和拆除.然后,在运行测试的可执行文件的主函数中,在调用::testing::AddGlobalTestEnvironment()之前调用函数RUN_ALL_TESTS().有关更多信息,请查看文档:

https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#global-set-up-and-tear-down

  • 页面已移动 -> https://github.com/google/googletest/blob/master/docs/advanced.md#global-set-up-and-tear-down (2认同)