0

我正在尝试为我现有的嵌入式项目设置单元测试。不幸的是,该项目对源文件“.c”和“.C”有混合扩展名。由于版本控制历史,我不能只将所有文件重命名为“.c”

我尝试相应地编辑 yaml 文件,但它似乎只支持一个或另一个扩展名。

普通的

...
:extension:
  :executable: .out
  :source: .c
...

不是工作方式,但需要

...
:extension:
  :executable: .out
  :source: .c ; .C
...

LED.C 未编译。所以链接器失败了。

Test 'test_LED.c'
-----------------
Generating runner for test_LED.c...
Compiling test_LED_runner.c...
Compiling test_LED.c...
Linking test_LED.out...
build/test/out/c/test_LED.o: In function `test_LED_NeedToImplement':
C:\Users\de7d7b\Workspaces\C_\myProject/test/test_LED.c:14: undefined reference to `LED_turnOn'
collect2.exe: error: ld returned 1 exit status
4

1 回答 1

0

由于源扩展仅用作单个配置字符串而不是数组,因此从 0.29.1 开始,目前 Ceedling 似乎无法做到这一点。我强烈建议为它打开一个功能请求。

同时,您至少可以通过为每个文件创建符号链接来解决部分问题。这很烦人,但可以让您在不重命名所有文件的情况下使用 ceedling。例如,如果您要测试的文件在 src 中:

ln -s LED.C src/LED.c
于 2019-12-29T07:25:27.537 回答