您的位置:首页 > 文旅 > 美景 > 【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

2024/10/6 8:22:02 来源:https://blog.csdn.net/2301_81226734/article/details/140910234  浏览:    关键词:【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

山不在高,有仙则名。水不在深,有龙则灵。

                                        ----CSDN 时时三省

目录

1,移植介绍

2,使用 Code::Blocks 17.12 创建工程

3,搬移文件入工程目录

4,更改代码

5,向工程添加文件

6,运行结果说明

7,更改main.c代码,转换unity test 执行模式

第一种修改方法:

第二种修改方法:

第三种修改方法:

8,移植ok的资源下载

1,移植介绍

        与《【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)》文章移植步骤一样,区别在于 unity_test 的核心文件多移植了 extras 目录里面的文件。

2,使用 Code::Blocks 17.12 创建工程

        参考 《【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)》文档第一章。【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)-CSDN博客

3,搬移文件入工程目录

移入的文件为:
        一:将 Unity\src 下的 unity.c 、 unity.h 、 unity_internals.h 拷贝到工程目录下

        二:将 Unity\extras\fixture\src 下的 unity_fixture.c,unity_fixture.h, unity_fixture_internals.h 拷贝到工程目录下

        三:将 Unity\extras\memory\src 下的 unity_memory.c,unity_memory.h 拷贝到工程目录下

        四:将 Unity\examples\example_2\src 下的 ProductionCode.c 、 ProductionCode.h,ProductionCode2.c 、 ProductionCode2.h 拷贝到工程目录下
        五:将 Unity\examples\example_2\test 下的 TestProductionCode.c,TestProductionCode2.c 及其子目录 \test_runners 下的 TestProductionCode_Runner.c ,TestProductionCode2_Runner.c,all_tests.c拷贝到工程目录下

文件简介:

        前三种移植文件为unity的库文件。第四种为被测试的源代码。第五种为测试代码以及main函数。

迁移好之后的文件目录如下图:

4,更改代码

将 all_test.c 的代码拷贝进 main.c。并将代码更改如下,特别注意下划线位置的代码:

5,向工程添加文件

        将第三步搬移过来的文件,除 all_tests.c 文件外,全部添加进工程,添加之后的工程如下图所示:

备注:

        具体添加方法可参照:【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)-CSDN博客

6,运行结果说明

运行结果如下图的截图:

对于成功和失败的用例,均有打印日志。

7,更改main.c代码,转换unity test 执行模式

第一种修改方法:

假设修改UnityMain() 函数的第一传参为1,则执行结果如下图:

修改参数后,则执行结果中,没有关于成功用例的pass打印了。

第二种修改方法:

假设修改UnityMain() 函数的第一传参为3,argv[] 数组增加元素 "-r", 则执行结果如下图:

如上执行的结果,用例执行两次,且包含pass打印。

第三种修改方法:

假设修改UnityMain() 函数的第一传参为2,argv[] 数组元素 "-h", 则执行结果如下图:

如上执行的结果,用例未执行,打印 argv[] 参数的含义。

备注:

       之所以有这么多种模式,是因为 UnityGetCommandLineOptions()函数。可以打开源码查看此函数。 

8,移植ok的资源下载

下载即可运行:

https://download.csdn.net/download/2301_81226734/89613716

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com