Domanda

Come posso passare parametri ai miei suite di test?

gtest --number-of-input=5

Ho il seguente codice GTEST principale. E --number-of-input=5 dovrebbe essere passato a InitGoogleTest ().

#include <iostream>
#include <gtest/gtest.h>

int main(int argc, char **argv) {
  std::cout << "Running main() from gtest_main.cc\n";
  ::testing::GTEST_FLAG(output) = "xml:hello.xml";
  testing::InitGoogleTest(&argc, argv);

  return RUN_ALL_TESTS();
}

Non so come passare il mio parametro per le suite di test / casi come segue?

class TestTwo : public QuickTest {
 protected:
  virtual void SetUp() {
      QuickTest::SetUp();
      square = new Square(10);
      circle = new Circle(10);

  }

  virtual void TearDown() {
      delete square;
      delete circle;
      QuickTest::TearDown();
  }

  Square* square;
  Circle* circle;
};


// Now, let's write tests using the QueueTest fixture.

// Tests the default constructor.
TEST_F(TestOne, DefaultConstructor) {
  EXPECT_EQ(100.0, square->area());
}
TEST_F(TestOne, DefaultDestructor) {
  EXPECT_EQ(1,1);
}
TEST_F(TestOne, VHDL_EMIT_Passthrough) {
  EXPECT_EQ(1,1);
}
TEST_F(TestOne, VHDL_BUILD_Passthrough) {
  EXPECT_EQ(1,1);
}

Aggiunto

ho modificato il metodo principale per mostrare l'argv [i] dopo InitGoogleTest().

int main(int argc, char **argv) {
    std::cout << "Running main() from gtest_main.cc\n";
    ::testing::GTEST_FLAG(output) = "xml:hello.xml";
    testing::InitGoogleTest(&argc, argv);

    for (int i = 0; i < argc; i++) {
        cout << i << ":" << argv[i] << endl;
    }

Questa è gli argomenti dati al GTEST: ./s --number-of-input=5 --gtest_filter=Test_Cases1*.

Questo è il risultato:

Running main() from gtest_main.cc
0:./s
1:--number-of-input=5
Note: Google Test filter = Test_Cases1*
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[  PASSED  ] 0 tests.

filtri GTEST le prove che non hanno il nome di Test_Cases1, e mostra anche gli argomenti corretti diversi da quelli di partenza con gtest.

Riferimento - Come eseguire casi di test specifici in GoogleTest

È stato utile?

Soluzione

Google prova riconosce solo le proprie opzioni della riga di comando. Ogni volta che ne trova uno, esso rimuove dalla argv e aggiornamenti argc di conseguenza, così dopo i rendimenti InitGoogleTest, nulla rimasto in argv è disponibile per di elaborare da soli. Usa la tua tecnica della riga di comando-analisi preferito, memorizzare i risultati in una variabile globale, e si riferiscono ad esso durante i test.

Se un opzioni della riga di comando appare come un'opzione Google prova, ma in realtà non è, allora il programma stamperà il suo messaggio di aiuto ed esce senza correre alcun test. Opzioni di Google prova iniziano con gtest_.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top