我正在运行谷歌测试。谷歌测试 - 上课前
我需要像上课之类的东西。我有SetUp()和TearDown()函数,但它们在之前和之后运行,每个测试。现在我需要一些全局的东西 - 比如ctor,它应该在类加载时只运行一次。
感谢提前。
我正在运行谷歌测试。谷歌测试 - 上课前
我需要像上课之类的东西。我有SetUp()和TearDown()函数,但它们在之前和之后运行,每个测试。现在我需要一些全局的东西 - 比如ctor,它应该在类加载时只运行一次。
感谢提前。
您可以定义静态成员函数在每个灯具类void SetUpTestCase()
和void TearDownTestCase()
,即从::testing::Test
派生每个类。
对于每个灯具,在灯具中的所有测试运行之前和之后,该代码只能运行一次。
检查docs。
Perez - 如何为所有测试(在所有测试案例中)做到这一点?我的意思是,我希望在每次测试之前,同样的SetUp方法将运行,以及在每次测试之后,同样的TearDown方法将运行,而无需添加/编辑任何现有类? –
@GuyAvraham:AFAIK框架中没有这样的钩子函数可以让你做到这一点。你可能需要自己构建它,也许可以为':: testing :: Test'定义一个子类,然后让它从你的测试类派生出来。 –
谢谢,我试过了 - 它的工作原理。 –
继承类::testing::Environment
并覆盖方法SetUp
和TearDown
,这些方法将包含用于全局设置和拆除的代码。然后,在执行测试的可执行文件的主要功能中,请在致电RUN_ALL_TESTS()
之前调用函数::testing::AddGlobalTestEnvironment()
。欲了解更多信息,请查看文档:
请详细说明这个“班级加载的一次”。你指的是什么课,“加载”课是什么意思? –
我的意思是在所有**测试开始之前运行的东西。没有为每个测试用例设置。 – Rat