1

我有一个存储库,里面有几个项目。生成的目录结构是这样的:

Repository
  --CMakeLists.txt
  --Project A
      --CMakeLists.txt
  --Project B
      --CMakeLists.txt

在项目 A 和 BI 中,我使用add_test. 在一个项目中我可以做到make test

如何将目标“测试”添加到顶部 CMakeLists.txt 以便能够make test从顶级目录调用并执行所有项目的测试?

4

1 回答 1

5

我刚刚尝试使用以下文件重现您的设置:

/tmp/test $ tree
.
├── a
│   └── CMakeLists.txt
├── b
│   └── CMakeLists.txt
└── CMakeLists.txt

/tmp/test $ cat CMakeLists.txt 
cmake_minimum_required(VERSION 3.0)

project(Foo)

enable_testing()
add_subdirectory(a)
add_subdirectory(b)
/tmp/test $ cat a/CMakeLists.txt 
project(A)
add_test(NAME atest COMMAND echo "hello from a")
/tmp/test $ cat b/CMakeLists.txt 
project(B)
add_test(NAME btest COMMAND echo "hello from b")

/tmp/test/build $ mkdir build && cd build
/tmp/test/build $ cmake .. && make test
# Remove some output
Running tests...
Test project /tmp/test/build
    Start 1: atest
1/2 Test #1: atest ............................   Passed    0.00 sec
    Start 2: btest
2/2 Test #2: btest ............................   Passed    0.00 sec
于 2015-07-27T10:01:28.913 回答