问题标签 [unittest++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 无法使用 UnitTest++ VS2012 运行后期构建
我正在阅读 UnitTest++ 的MoneyApp教程,但在添加构建后设置时收到以下错误。我想知道是否是因为(x86)之前的空间,有人知道如何解决这个问题吗?
c++ - cmake - UnitTest++ 链接单元测试二进制文件失败
我是 CMake 的新手,但我能够为我的 C++ 项目设置 CMakeLists.txt 文件,它有点像这个设置,顺便说一句。我需要使用 UnitTest++ 进行单元测试,但由于某种原因,链接单元测试可执行文件失败。这是外壳输出:
这是我的根 CMakeLists.txt 文件:
这是与我的可执行单元测试二进制文件相关的 CMakeLists.txt 文件:
这是与构建我的项目库相关的最后一个 CMakeLists.txt 文件:
我做错了什么?
c++ - Codelite 和 UnitTest++
谁能向我解释 Codelite 中的 UnitTest++ 集成应该如何工作,即我应该将 UnitTest++ 的头文件和 libUnitTest++.a 放在哪里?
我正在开发 Ubuntu 12.04。
python - Python unittest 打印日志在 Linux 上工作,但在 Windows 上不工作
我正在尝试编写一个单元测试,它将标准输出和标准错误重定向到 Windows 网络驱动器上写入的文件。出于某种原因,相同的脚本(只有 diff. 是目录路径)适用于 Linux,但不适用于 Windows。在 Windows 上运行时,不会将任何内容写入日志文件。
这是 Windows 上的脚本,没有写入任何内容:
在 Linux 上运行的相同脚本可以工作或至少会写入文件:
MyTestLinux 类(unittest.TestCase):
unit-testing - 单元测试与 TDD(测试驱动开发)有什么区别?
它们是同一种东西但名称不同吗?
两者中的“测试”这个词让我觉得它们很相似。
unit-testing - 处理可选测试
在CATCH、Google Test和其他框架(至少在传统意义上,您指定这样做的原因并在输出中看到它)中没有跳过测试的方法让我想我是否需要它(我在过去的项目中一直在使用UnitTest++)。
通常,是的,不应该有任何理由跳过桌面应用程序中的任何内容——你要么测试它,要么不测试。但是在硬件方面——有些事情是无法保证的。
例如,我有两个设备:一个带有嵌入式蜂鸣器,但另一个 - 没有。在 UnitTest++ 中,我会查询系统,发现蜂鸣器不可用,然后跳过依赖于它的测试。当然,在 CATCH 中,我可以做类似的事情:在初始化期间查询系统,然后只排除所有带有“beeper”标签的测试(CATCH 中的一个特殊功能)。
但是,有一点不同:测试人员(我以外的其他人)会读取输出,但找不到提到的那些可选测试(而在 UnitTest++ 中,它们会被标记为已跳过,原因将作为输出的一部分提供)。他的第一个想法:
- 这必须是测试应用程序的某个旧版本。
- 也许我忘了启用套件 X。
- 有些东西可能坏了,我应该问开发人员。
- 等等,也许他们只是被跳过了。但为什么?无论如何,我会问开发人员。
此外,他可能只是没有注意到这些测试被跳过,而实际上它们可能不应该被跳过(即操作系统返回“false”,无论蜂鸣器是否存在,这是一个主要错误)。一种选择是将“跳过”的测试标记为通过,但这感觉像是一种不必要的解决方法。
是否有一些我不知道的聪明技术(即,我不知道,将可选测试完全分离成一个独立程序)?如果不是 - 那我应该坚持使用 UnitTest++ 吗?它可以完成这项工作,但我真的很喜欢 CATCH 的SECTIONs和tags,有助于避免代码重复。
codelite - 在 Codelite 中使用 unittest++
经过大量研究:我实际上似乎无法让 unittest++ 在 Codelite 中工作。在 Mac 或 Windows 机器上。将项目创建为 unittest++ 项目似乎没问题(根据 Eran 的建议)。编译器识别 unittest++ 的库(或者看起来如此),但构建总是失败。尝试将项目作为 unittest++ 项目运行 - 什么都没有发生。
显然我在这里遗漏了一些东西 - 不知道问题是在 unitttest 和 Codelite 的设置中,还是在制作 unittest++ 项目或其他什么?
拜托,我不是拥有数十年经验的强大程序员。不应该对我遵循一般指示的能力做出任何假设 - 我认为需要确切的指示。我已经花了大约一周的时间让 Codelite 版本在我的 Mac 和我的 Windows 机器上正常运行 - 所以要温柔。
托尼·杰伊
c++ - 现代 UnitTest++ 替代品
编辑:这个问题可能因为“不是一个真正的编程问题”而被投票关闭。对此,我只能反驳“啊!” 现在我确实发现了这个直接相关并且应该有所帮助的问题。
我正在有条不紊地升级我的源代码以使用 C++11 次,我的许多代码与之交互的部分之一是 UnitTest++。
我将每个实现文件的后半部分都专门cpp
用于单元测试,因此它们包括许多
声明。
现在,UnitTest++ 已经有 8 年的历史了,它仍然编译得很好,所以我没有迫切需要更换它。但是我发现它可能不再被维护(尽管它现有的功能看起来确实足够可靠,这是一个不好的迹象),因为网站和 sourceforge 已经关闭。
因此,即使我的代码现在可以正常工作,但现在早点而不是晚点切换到更好的系统可能对我有利,因为它将减少将来的翻译负担。
我环顾四周,似乎有一些可供我选择的选择。特别有趣的是libunittest和CATCH之类的,它只是标头。
我的问题是对于过去可能有过 UnitTest++ 和其他单元测试系统经验的人,什么对你有用,如果你有任何建议。我正在寻找一种非常可移植的东西,除了 C++98/03 或 C++11 编译器(gcc、clang、msvc)和标准库之外,它的外部依赖性为零,而且只有标头是一个优点但不是必需的。
所以我想我的偏好确实倾向于缩小选择范围。即使使用 UnitTest++,我也喜欢它的可移植性和自包含性,但我必须编写大约 100 行左右的代码来扩展它,以便以两种方式对我来说更灵活:
- 允许我指定要运行的特定测试(无论是按名称选择测试,还是按实现它们的源文件或测试套件名称)
- 自定义测试的报告行为,例如向我显示每个测试的计时数据并在最后汇总总计 - 我实际上对此功能和行为有些不满意,例如我不知道如何配置 UnitTest++ 以应用我的详细测试报告者运行未放置在测试套件中的测试。
一个完美的答案将是来自 UnitTest++ 本身背后的人之一!但是那篇文章已经有10年了!
c++ - Unittest++ 不识别测试
我目前正在执行单元测试(我这周刚刚学到),以便在扩展现有程序的功能之前重构现有程序。
但是,在我对模板类进行了大约 5-6 次测试之后,UnitTest++ 突然给出了一个错误,提示“项目包含 0 个测试”(此处为完整代码),现在即使我已恢复测试,它仍然给我这个错误错误出现之前的代码。现在,只要实例化对象,它就会失败。
该类用于管理优化算法中的数据数组,因此这些函数只是初始化、读取、写入和更新数组,本身不应该成为问题(或需要大量测试)。
我找不到讨论类似问题的线程。如果有人能指出我的原因,那就太好了。
规格:
我使用 CodeLite 8.2.0 作为 Windows 8.1 上的 IDE,MinGW (TDM-GCC-32) 作为编译器,UnitTest++1.3 作为单元测试框架。
UnitTest++ 中断之前的代码(以防它可能有用)如下:
当我将此测试附加到列表时出现错误:
c++ - UnitTest++ 是否太小而无法实际使用
我被分配了一项任务,准备对我们可以用于下一个项目的 C++ 单元测试框架进行评估,我被 UnitTest++ 的极简主义和简单性迷住了。但是我很担心它的工具阵列是否太少了。
例如,我可以想象某个类有一个带符号的 int 成员的情况,它不能是负数,但我不能用断言测试它,因为 UnitTest++ 只有相等断言。如果我可以使用带有一些自定义消息的普通 CHECK 就不会那么糟糕了,但是 AFAIK 不支持自定义日志记录。
我坚信 UnitTest++ 的创建者知道他们在做什么,当他们决定除 true、equals 或 throws 之外的任何断言都足够边缘以致于不费心实施时。尽管如此,如果您由于其他框架中缺乏可用的功能而遇到任何问题,我想听听使用这个框架的人的意见。