我有克利翁內的以下項目結構:構建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並手動創建。
我想:
- 有克利翁建立在「建」
- 只有建立應用程序二進制文件,如果測試通過
- 什麼是管理的一種更好的方式無論是應用程序二進制和測試二進制在這種情況下