我在尝试检查我在此处托管的 github 上的一个项目的代码覆盖率时遇到了一些麻烦。主要是 C 和扩展为一些可用代码的宏。
我正在编写一个测试,并决定提前发布它。这意味着该测试并未完全测试由宏扩展的所有功能,而是以某种方式获得了该特定文件的 100% 代码覆盖率。所有测试都通过了(所以所有未生成的代码都通过了),但不是所有由宏扩展的函数,所以我假设生成的代码没有被考虑在内。
所以我看到了两种可能性:
- A -做一些编译器技巧,以便 codecov 可以考虑扩展代码;
- B - 将生成的宏直接复制并粘贴到文件中(这并不理想,因为宏扩展可能会改变)。
CMC_CREATE_UNIT
扩展为单个函数,然后在下面调用 main (未显示)。CMC_CREATE_TEST
扩展成一系列do {} while(0)
(更多细节在这里)。还LIST_GENERATE
扩展为一系列作为本单元测试目标的函数。