Тест Google: Как получить правильные номера строк в выходе теста для параметризованных тестов?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Тест Google: Как получить правильные номера строк в выходе теста для параметризованных тестов?

Сообщение Anonymous »

Я использую тест Google с параметризованными тестами и хочу увидеть правильный номер строки в выходе теста, чтобы я мог быстро найти конкретный тестовый пример, который не удался. />

Код: Выделить всё

#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
}
)
);
текущее поведение
Когда тест не сработает, я получаю выход с номерами строк, указывающим на то, где заканчивается indathiate_test_suite_p , а не на том, где провал тестовый пример. Определяется tred_name ("Invalidinput") , поэтому я могу быстро перейти к испытательному примеру с неудачным тестовым примером при рассмотрении вывода терминала. Возможно ли это вообще?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... terized-te
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»