Google -Test: Wie kann ich die richtigen Zeilennummern in der Testausgabe für parametrisierte Tests erhalten?C++

Programme in C++. Entwicklerforum
Anonymous
 Google -Test: Wie kann ich die richtigen Zeilennummern in der Testausgabe für parametrisierte Tests erhalten?

Post by Anonymous »

Ich verwende den Google -Test mit parametrisierten Tests und möchte die richtige Zeilennummer in der Testausgabe sehen, damit ich schnell den spezifischen Testfall finden kann, der fehlgeschlagen ist. />

Code: Select all

#include 

#include 

class TracedName {
public:
TracedName(std::string name, std::string filename, int line):
m_name(std::move(name)), m_filename(std::move(filename)), m_lineNumber(line)
{
}

std::string_view operator()() const { return m_name; }

::testing::ScopedTrace trace() const
{
return {m_filename.c_str(), m_lineNumber, m_name.c_str()};
}

private:
std::string m_name;
std::string m_filename;
int m_lineNumber;
};

#define TRACED_NAME(name) TracedName(name, __FILE__, __LINE__)

struct TestInput {
std::string value;
};

struct TestCase {
TracedName name;
TestInput input;
bool expected;
};

class ParameterizedTestSuite : public ::testing::TestWithParam {};

TEST_P(ParameterizedTestSuite, Test) {
const auto& param = GetParam();
const auto trace = param.name.trace(); // Trying to get the trace to point to the test case
EXPECT_EQ(param.input.value == "valid", param.expected);
}

INSTANTIATE_TEST_SUITE_P(
MyTests,
ParameterizedTestSuite,
::testing::Values(
TestCase{
.name = TRACED_NAME("ValidInput"),
.input = {.value = "valid"},
.expected = true,
},
TestCase{
.name = TRACED_NAME("InvalidInput"), // I want error message to point to THIS line
.input = {.value = "invalid"},
.expected = true,  // This will fail
}
)
);
Aktuelles Verhalten
Wenn der Test fehlschlägt, erhalte ich eine Ausgabe mit Zeilennummern, die darauf hinweisen, wo es instanziiert, wo der fehlgeschlagene Testfall deklariert ist. Traced_name ("InvalidInput") ist definiert, sodass ich bei der Betrachtung der Terminalausgabe schnell zum fehlerhaften Testfall wechseln kann. Ist das überhaupt möglich?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post