我开始在测试驱动的C开发中工作。
通过运行以下命令,我使用CMock生成模拟类:
ruby cmock.rb ../../../src/util.h我目前的包装结构是:
app/root
| bin
| *.*
| build
| *.*
|- cmake
|- modules
|- CodeCoverage.cmake
|- coverage
|- *.*
|- external
|- Unity
|- CMock
|- CMakeLists.txt
|- src
|- *.c
|- *.h
|- CMakeLists.txt
|- mocks
|- *.c
|- *.h
|- CMakeLists.txt
|- tests
|- *.c
|- *.h
|- CMakeLists.txt
|- CMakeLists.txt我有将src编译为库的CMakeLists.txt设置:
add_library(app SHARED ${SOURCE_FILES})测试是作为可执行文件编译的设置:
add_executable(tests ${TEST_SOURCES})
target_link_libraries(tests app Unity mocks)并且将模拟设置为一个库来编译:
add_library(mocks ${MOCK_SOURCES})
target_link_libraries(mocks app Unity CMock)我已经尝试过多个模拟头的位置,并且一直在玩,但是我忽略了如何不获得多个定义错误的基本原理。
有人能对我的文件结构或策略有什么不正确的指导吗?
发布于 2016-10-27 14:28:28
见这里的答案:https://github.com/ThrowTheSwitch/CMock/issues/97
基本上,这一切归结为链接只是您需要的文件,为每个测试。当使用统一时,每个测试都成为它自己的可执行的。
https://stackoverflow.com/questions/40270089
复制相似问题