Я использую тест 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") , поэтому я могу быстро перейти к испытательному примеру с неудачным тестовым примером при рассмотрении вывода терминала. Возможно ли это вообще?>
Я использую тест Google с параметризованными тестами и хочу увидеть правильный номер строки в выходе теста, чтобы я мог быстро найти конкретный тестовый пример, который не удался. />[code]#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) { }
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 } ) ); [/code] текущее поведение Когда тест не сработает, я получаю выход с номерами строк, указывающим на то, где заканчивается indathiate_test_suite_p , а не на том, где провал тестовый пример. Определяется tred_name ("Invalidinput") , поэтому я могу быстро перейти к испытательному примеру с неудачным тестовым примером при рассмотрении вывода терминала. Возможно ли это вообще?>
Я использую тест Google с параметризованными тестами и хочу увидеть правильный номер строки в выходе теста, чтобы я мог быстро найти конкретный тестовый пример, который не удался. /> #include
Я использую тест Google с параметризованными тестами и хочу увидеть правильный номер строки в выходе теста, чтобы я мог быстро найти конкретный тестовый пример, который не удался. /> #include
Я использую платформу Codeception и среду IDE Netbeans для автоматизации тестирования с использованием PHP.
Я хотел бы запустить 2 теста один за другим в группе, где сначала будет запущен тест API, а после успешного запуска теста API следующим...
У меня есть параметризованный интеграционный тест Junit. Он имеет 30 входов (что дает ему возможность выполнить 30 тестов), каждый из которых занимает 18 секунд.
Как вы можете видеть на скриншоте, я могу запустить тест Xunit через cmd, однако в обозревателе тестов тест не найден.
У меня есть эти пакеты от nuget: п>
После небольшого поиска в Интернете я попробовал следующее исправление: