빌드 유형에 따라 테스트를 실행하려는 CMake 프로젝트를 만들려고합니다. 예. 퍼포먼스 빌드를하면 퍼포먼스 테스트 등을하고 싶다.ctest가 빌드 유형별 테스트를 호출하지 않습니다.
add_test는 그 목적으로 CONFIGURATIONS
매개 변수를 제공한다. 그러나 거기에 빌드 유형을 제공하면 ctest
은 테스트를 찾지 못합니다.
다음은 동작을 재현하는 최소한의 CMakeLists.txt
입니다. 쉘에서
project (test NONE)
include (CTest)
add_test (NAME test
CONFIGURATIONS Release
COMMAND cowsay)
:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
ctest
출력 :
Running tests...
Test project /home/phil/cmaketest/build
No tests were found!!!
내가 실행하는 경우
ctest -C Release
I 얻기 원하는 동작 테스트가 실행 즉,하지만 난 차라리하지 않는게 직접 -C Release
을 입력해야합니다.
여기에 뭔가 잘못하고 있습니까? 아니면 들여 쓰여진 동작입니까?
이와 이상한 것은 다른 테스트 빌드 단계에서 서로 다른 컴파일/링크 플래그 필요하지만, 내가 좋아하는 뭔가를 할 수 있다는 것입니다 'cmake -DCMAKE_BUILD_TYPE = Release ..로 릴리즈 빌드를하고; cmake --build .' 그리고'ctest -C Coverage '로 코드 커버리지 테스트를 시작하십시오. 그러나 이것은 분명히 금지되어야한다. 그러나 현재 사용중인 설정으로는 의미없는 결과 만 나타납니다. – user26756