# Ceedling Uint test **Repository Path**: Yancl0416/ceedling-uint-test ## Basic Information - **Project Name**: Ceedling Uint test - **Description**: C unit testing & build environment with Unity, CMock, and Ceedling. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🧪 Ceedling 单元测试项目:`add` 模块验证 本项目是一个基于 **Ceedling + Unity + CMock** 的最小化单元测试工程,用于验证本地开发环境是否正确配置,并对 `add` 模块进行基础功能测试。 > ✅ 目标:确认 Ceedling 环境可用,且能成功编译、运行并测试 `add.c` 中的函数。 --- ## 📦 项目结构 ``` CEEDLINGTEST/ ├── .vscode/ # VS Code 配置(可选) │ ├── c_cpp_properties.json │ ├── launch.json │ └── settings.json ├── build/ # Ceedling 自动生成的构建输出(运行自动生成,已在 .gitignore 中忽略) │ └── test/ │ ├── artifacts/ │ ├── gcov/ │ ├── logs/ │ └── mocks/ │ ├── Mock_fun.c │ ├── Mock_fun.h │ ├── Mock_hello.c │ └── Mock_hello.h ├── src/ # 源码目录 │ ├── add.c # 被测模块实现 │ ├── add.h # 被测模块头文件 │ ├── fun.h # 其他依赖头文件(可能被 mock) │ └── hello.h # 其他依赖头文件(可能被 mock) ├── test/ # 测试代码目录 │ ├── support/ # 辅助支持代码(如自定义宏等) │ └── test_add.c # 对 add 模块的测试用例 ├── project.yml # Ceedling 主配置文件 └── README.md # 当前文档 ``` --- ## 🔧 环境版本 - **Ceedling**: `0.31.1` - **Unity**: `2.5.4` - **CMock**: `2.5.4` - **CException**: `1.3.3` - **Ruby**: `2.5.0p0` (x64-mingw32) > 使用工具链:默认 `gcc`(MinGW),适用于 Windows 平台 --- ## 📚 模块说明 ### `add.c` —— 被测模块 ```c // 示例内容(实际应由你实现) int add(int a, int b) { return a + b; } ``` ### `test_add.c` —— 测试用例 使用 Unity 测试框架编写,包含如下测试: - `test_add_positive()`:测试正数相加 - `test_add_negative()`:测试负数相加 - `test_add_zero()`:测试零值情况 > ✅ 所有测试均通过断言验证结果 --- ## 🚀 如何运行测试 1. **确保已安装 Ceedling** ```bash gem install ceedling ``` 2. **进入项目根目录** ```bash cd ceedlingTest ``` 3. **执行测试** ```bash ceedling test:all ``` 或查看详细日志: ```bash ceedling verbose ``` 4. **预期输出** ```bash ceedlingTest ❰main ✪ ❱ ★ ceedling test:all Test 'test_add.c' ----------------- Compiling test_add_runner.c... Compiling test_add.c... Compiling Mock_fun.c... Compiling Mock_hello.c... Compiling unity.c... Compiling add.c... Compiling cmock.c... Linking test_add.out... Running test_add.out... ----------- TEST OUTPUT ----------- [test_add.c] - "setup..." - "c > 10" - "a <= 3" - "ret=13" - "tearDown..." - "setup..." - "c <= 10" - "a > 3" - "tearDown..." - "setup..." - "c <= 10" - "a <= 3" - "tearDown..." -------------------- OVERALL TEST SUMMARY -------------------- TESTED: 3 PASSED: 3 FAILED: 0 IGNORED: 0 ``` --- ## 🛠️ 配置说明 ### `project.yml`(关键配置) > ⚠️ 注意:`CMock` 会自动为 `fun.h` 和 `hello.h` 生成 mock 文件(位于 `build/test/mocks/`),即使它们未在 `add.c` 中直接调用,也建议保留以避免报错。 --- ## 💡 常见问题与解决 | 问题 | 解决方案 | |------|----------| | `No such file or directory: gcc` | 安装 MinGW-w64 或添加 `gcc` 到系统 PATH | | `Could not find source file` | 检查 `src` 目录下是否存在 `add.c` 和 `add.h` | | `Undefined reference to 'add'` | 确保 `add.c` 正确编译进测试目标 | | `Mock generation failed` | 检查 `fun.h`, `hello.h` 是否存在且格式正确 | --- ## ✅ 验证目标达成 如果你看到以下信息: ``` >> OVERALL TEST SUMMARY ``` 🎉 表示你的 Ceedling 环境已经完全配置成功! 你可以继续: - 添加更多测试用例 - 引入更复杂的模块 - 启用代码覆盖分析(`ceedling gcov`) - 集成 CI/CD 工具 --- ## 📄 许可 MIT License. 可自由用于学习、教学或嵌入式开发测试环境搭建参考。 --- > 🌟 提示:此项目是学习 Ceedling 的理想起点。推荐后续扩展为包含 `mock`、`coverage`、`static analysis` 的完整测试流水线。 ---