使用boost测试和不应编译的测试的最佳实践
Best practice using boost test and tests that should not compile
我正在寻找一种合理的方法来测试基于C++模板的软件,我想在其中检查模板参数。如果参数不符合某些条件,我希望编译器发出错误。到目前为止还不错。。。
现在我想测试无效的模板参数是否确实被编译器撤销了。我可以设置一个测试场景,并在构建系统(cmake)中篡改一些东西,试图编译该场景,但这听起来非常痛苦。我想我不是第一个试图解决这个问题的人。大约10年前,我使用了一种方法,即使用单个文件进行多个测试,并使用预处理器启用单个测试。但这也不是很优雅。
关于如何解决这个问题(最好在我当前的工具集中:c++、cmake、boost-test、bash、python),有什么建议吗?
CMake的try_compile
听起来是一个合理的工作工具。
这里的主要问题是try_compile
将在CMake配置时间运行,这不是进行测试的最佳时间。因此,我建议将测试的编译分离到自己的CMake项目中。
外部CMake项目将像以前一样构建代码,并包括在测试项目上运行CMake的自定义构建目标。这样,您甚至应该能够将编译时测试包含到CTest套件中。
我实际上并没有用CMake实现这样的东西,所以我不能保证它真的会像预期的那样工作,更不用说它是最好的方法了。但如果我必须写这样一个系统,我可能就是这样开始的。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 在 gtests 中测试C++全局变量的最佳方法
- 如何生成数组来测试quickSort的最佳情况
- 最佳实践 - 在单元测试中链接到 lib 或编译源代码
- 测试模拟功能的最佳方法
- 在C 开源项目中包括单位测试的最佳方法
- 测试DLL函数的最佳方法是什么
- 测试使用visual studio编写的C++android应用程序的最佳方法是什么.不升级到windows专业版
- 一半填充二进制搜索树进行测试的最佳方法
- 最佳实践:使用随机数生成器的测试代码
- 使用boost测试和不应编译的测试的最佳实践
- Visual C++项目:最佳单元测试设置
- 编写谷歌测试的最佳实践是什么
- 在使用ide进行开发和测试时,SVN存储源代码的最佳实践是什么?
- 查找仅在性能测试下发生的堆损坏的最佳方法是什么?
- 测试值是否在阈值范围内的最佳方法(性能方面)是什么
- 从c#为c++库编写单元测试的最佳方法是什么?