获取单元测试库的断言函数的函数名称 (__FUNCTION__)
Getting the function name (__FUNCTION__) for my unit test library's assert function
我正在编写一个单元测试库,我需要在断言期间记录测试函数的名称,如下所示:
struct my_test_case : public unit_test::test {
void some_test()
{
assert_test(false, "test failed.");
}
};
当我运行测试用例时,我希望产生如下输出:
ASSERTION FAILED (&my_test_case::some_test()): test failed.
我知道有一些方法可以解决这个问题:
将
__FUNCTION__
赋给assert_true()定义一个类似
ASSERT(a, b)
的宏,扩展为assert_true(a, b, __FUNCTION__)
定义
TEST
这样的宏来缓存测试函数中的__FUNCTION__
struct my_test_case : public unit_test::test {
void some_test()
{
TEST
assert_test(false, "test failed.");
}
};
但是这些都是容易出错且丑陋的解决方案。这个问题还有别的解决办法吗?
类似(2)或其变体可能是唯一的选择:
__FUNCTION__
不是真正的函数或运行时变量,而只存在于编译时;因此,无论您做什么,当您在运行时需要它的值时,您都需要在本地保存该值。
相关文章:
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 在C++单元测试上下文中,抽象基类是否应将其他抽象基类作为函数参数
- C++ gmock - 我们如何在单元测试 cpp 文件中读取/获取 cpp 文件函数的参数值
- 在类 gtest/gmock 进行单元测试时模拟成员函数C++
- 如何正确地对 constexpr 函数进行单元测试
- 如何使用私有构造函数对类进行单元测试?
- 在为函数编写单元测试时,我应该模拟所做的内部函数调用吗?
- Qt单元测试:指针列表上的QCOMPARE函数
- 如何检查函数是在C++单元测试中的析构函数中调用的
- 我们应该修改单元测试的函数签名吗?
- 检测单元测试中的特定函数调用
- 单元测试呼叫实例变量的函数
- 如何使用 gtest 对 std::bind 函数进行单元测试
- 如何为将回调作为其参数的函数编写单元测试
- 在单元测试(Nunit或MSTest)中从C#中调用的C 函数的原因是从控制台应用程序中运行的同一代码的不同结果
- 静态函数的单元测试设计模式
- 如何嵌入实时单元测试函数的主体作为 Doxygen 的示例用法
- 使用 Qt 进行单元测试:更改测试函数中使用的标准路径
- 析构函数单元测试会被优化掉吗?