我只在我之前的项目中使用过UnitTest ++。但我从未遇到过测试可执行文件/ ELF的不幸。我记得stackoverflow上的某个人发布了一些关于CppUnit的内容,但不记得了。
我的问题
我想使用CppUnit来测试.exe和ELF。单元测试是我认为的解决方案。
我认为有用的是
......我没有CLUE ....我在生活中根本没有做过任何.exe / ELF单元测试。我之前做过敏捷的事情,但这是一个全新的球赛。我很感激任何人都有这方面的经验。
答案 0 :(得分:0)
CppUnit是自动化单元测试的框架,而不是自动化系统测试。
系统测试就是它的名字所暗示的。从用户的角度来看,所有关于将所有代码模块一起测试为一个完整的系统。自动化系统测试是指您从测试工具中运行整个系统,为其提供特定的用户输入并测试行为和输出是否按预期运行。
单元测试的全部内容是从代码的角度测试最小的代码单元,为其提供入口条件并断言正确满足退出条件。最好的情况是,一个单元测试应该在类的公共接口上通过一个方法运行一条路径,而不依赖于难以提供的资源(如数据库或服务)的外部依赖性。单元测试是一个开发人员工具,用于测试模块是否完全按照预期的方式完成所有操作。这是一种非常详细的测试方法,而不是从可执行的角度来看你会想到的东西。
所有这一切,你打算用CppUnit测试的代码仍然需要链接才能被执行。我们所做的是将我们的生产代码编写在一个项目中,将测试代码编写在一个单独的项目中。构建时,首先构建生产代码项目,将生产.CPP文件编译为.OBJ文件,然后将它们链接到PROD.DLL或PROD.EXE(无论项目是要生成什么。)我们接下来构建测试项目,将测试.CPP文件编译成.OBJ文件。然后,测试项目将测试.OBJ文件与之前编译的生产.OBJ文件链接到TEST.EXE。这样我们的测试就与用于创建实际生产代码的相同.OBJ文件相关联。然后我们执行TEST.EXE并确保测试在构建完成之前没有显示任何错误。