J'essaie d'écrire une suite de tests qui effectue une opération de "configuration" au niveau de la suite de tests.
J'ai d'abord essayé d'écrire un programme simple pour essayer de le faire fonctionner mais je n'ai pas de chance d'obtenir la méthode "SetUpTestSuite" à appeler.
#include <gtest/gtest.h>
#include <iostream>
class MyTest : public ::testing::Test
{
protected:
static void SetUpTestSuite() {
std::cerr << "TestSuiteSetup" << std::endl;
}
static void TearDownTestSuite() {
}
};
TEST_F(MyTest, Case1) {
std::cerr << "TESTING" << std::endl;
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Quand je lance ceci, je reçois:
[==========] Running 1 tests from 1 test cases.
[----------] Global test environment set-up.
[----------] 1 test from MyTest
[ RUN ] MyTest.Case1
TESTING
[ OK ] MyTest.Case1 (0 ms)
[----------] 1 test from MyTest (0 ms total)
[----------] Global test environment tear-down
[==========] 1 tests from 1 test cases ran. (0 ms total)
[ PASSED ] 1 tests.
Pour une raison quelconque, SetUpTestSuite()
n'est jamais appelée.
J'ai lu la section Partage des ressources entre les tests dans la même suite de la documentation de Google Test, mais je n'arrive pas à comprendre ce que je fais mal.
Y a-t-il quelque chose qui me manque?
Remarque: J'utilise gtest v1.6.0 - c'est le seul package disponible à partir du référentiel RPM Red Hat de ma société.
La documentation semble erronée. Ces méthodes doivent être appelées SetUpTestCase()
et TearDownTestCase()
. Au moins dans Google Test 1.8.0.
La modification ne semble pas avoir été publiée. Les documents semblent être à jour avec la branche principale, pas la version publiée.