我有克利翁内的以下项目结构:构建C++项目与CMake和克利翁
├── CMakeLists.txt
├── src
│ ├── func1.c
│ ├── func1.h
│ └── main.c
└── test
└── unit
└── test_func1.c
其中的CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(untitled)
set(CMAKE_C_STANDARD 11)
find_library(CMOCKA_LIBRARY libcmocka.so)
# application binary
set(SOURCE_FILES src/main.c src/func1.c src/func1.h)
add_executable(untitled ${SOURCE_FILES})
# test binary
include_directories("${CMAKE_SOURCE_DIR}/src")
set(TEST_SOURCE_FILES src/func1.c src/func1.h test/unit/test_func1.c)
add_executable(unit_tests ${TEST_SOURCE_FILES})
target_link_libraries(unit_tests ${CMOCKA_LIBRARY})
的main.c:
#include <stdio.h>
#include "func1.h"
int main() {
printf("Hello, World!\n");
print_hello();
return 0;
}
test_func1 .c:
#include <stdlib.h>
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include "func1.h"
static void test_func1(void **state){
int ret = print_hello();
assert_true(ret == 0);
}
int main(int argc, char **argv){
const UnitTest tests[] = {
unit_test(test_func1),
};
return run_tests(tests);
}
func1.c:
#include <stdio.h>
#include "func1.h"
int print_hello(){
printf("hello");
return 0;
}
func1.h:
#ifndef UNTITLED_FUNC1_H
#define UNTITLED_FUNC1_H
int print_hello();
#endif //UNTITLED_FUNC1_H
当我从克利翁内构建应用程序,它只是建立了无 应用程序二进制文件,并且它不生成测试二进制文件。为了构建 测试,我必须创建一个构建目录并调用cmake并手动创建。
我想:
- 有克利翁建立在“建”
- 只有建立应用程序二进制文件,如果测试通过
- 什么是管理的一种更好的方式无论是应用程序二进制和测试二进制在这种情况下