Összeszerelése és vizsgálata a projekt segítségével CGyõzõdjön és ctest, rendszerfejlesztés

Úgy gondolom, hogy a legtöbb C ++ fejlesztő egyébként szembe CGyõzõdjön, ugyanakkor, hogy az ilyen CTest és hogyan lehet használni, hogy automatizálják a vizsgálat a modell tudja, nem minden.
Annak érdekében, hogy megmutassa, hogyan lehet használni CGyõzõdjön és CTest együtt, úgy, mint például létrehozott egy kis könyvtár, amely egy pár sornyi kódot, amely képes felvenni, és ossza mellett CGyõzõdjön és CTest alkalmazások kell semmilyen unittest könyvtár (ebben a példában én vette Boost.Test, mégis, akkor is eltarthat, és GoogleTest). Itt meg kell figyelni, hogy mi nem CTest keretrendszer igazi írás tesztek. CTest - egy olyan alkalmazás fut teszteket, és ha szükséges, küldje az eredményeket a támogatott tárolókban.
A könyvtár szerkezete a vizsgálati kérelmet az alábbiak lesznek:


./ teszt
./test/main.cpp
./test/CMakeLists.txt
./ include
./include/calc.h
./ src
./src/CMakeLists.txt
./src/calc.cpp
./CMakeLists.txt

Ugyanígy, hozunk létre egy gyökér és egy CMakeLists CMakeLists fájl írja le a szerelvényt a könyvtár és a tesztek.

cmake_minimum_required (VERSION 2.6)
projekt (AutoUnitTests)

SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
$ / Bin
CACHE PATH
„Egy könyvtár minden”
)

SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY
$ / Bin
CACHE PATH
„Egy könyvtár minden”
)

SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
$ / Lib
CACHE PATH
„Egy könyvtár minden”
)

find_package (fokozás szükséges)

add_subdirectory (src építmények / src)
add_subdirectory (teszt építmények / vizsgálat)

Az első három SET parancs nem kötelező, csak nem szeretem, ha a folyamat az összeszerelés egy csomó köztes helyezett fájlok a gyökérkönyvtárban. De a jelenléte a csapat a gyökér enable_testing CMakeLists fájlt forgalom biztos, hogy költözött CMakeLists teszt könyvtárba, majd futtassa nem fog.
A következő lépés az, hogy hozzon létre egy fájlt CMakeLists az src könyvtárban, hogy őszinte legyek, ez önmagában nem a legcsekélyebb érdeklődés nem:

projekt (Calc)
set (Calc_source calc.cpp)
add_library (számított static $)

És az utolsó fájl a teszt könyvtárat:

find_package (kiemelés KOMPONENSEK unit_test_framework SZÜKSÉGES)

set (test1_source main.cpp)
add_executable (test1 $)
target_link_libraries (test1 $ számított)

add_test (NAME Test1 PARANCS test1)

Csak különböznek a hagyományos CMakeLists fájl add_test csapat. amely át a teszt nevét, és milyen parancsot kell futtatni, hogy indítsa el. Ie ez a csapat is nagyon jól néz ki, így:

add_test (testTkInter "/ usr / bin / python", "c" "import Tkinter")

Most, vizsgálták a teljesítményt lehet futtatni a make parancs teszt, és az eredmény a következő lesz:

A tesztek futtatása.
Test project / home / astavonin / Projects / AutoUnitTest
Start 1: Test1
1/1 Test # 1: Test1. Telt 0,03 sec

100% tesztek telt, 0 tesztek nem sikerült ki 1

Teljes vizsgálati idő (real) = 0,56 sec

Ha ehhez hozzátesszük még egy tesztet, hogy amennyiben nem sikerül, az eredmény némileg eltérő:

A tesztek futtatása.
Test project / home / astavonin / Projects / AutoUnitTest
Start 1: Test1
1/2 Test # 1: Test1. Telt 0.00 sec
Kezdés 2: Test2
2/2 Test # 2: Test2. *** Nem sikerült 0,00 mp

50% tesztek eltelt, az egyik tesztek nem sikerült ki 2

Teljes vizsgálati idő (real) = 0,46 sec

Az alábbi vizsgálatokat sikertelen:
2 - Test2 (Sikertelen)
Hibák futás közben CTest

Konzol kimenet teszt alkalmazások lesznek tárolva ./Testing/Temporary könyvtárban.
Egy példa a teljes mértékben letölthető itt.

Kapcsolódó megjegyzések: