Add framework for executing tests against multiple postgresql versions using docker compose.
This commit is contained in:
parent
655c6fceb1
commit
c3bf9e88e4
13 changed files with 457 additions and 0 deletions
43
tests/integration/CMakeLists.txt
Normal file
43
tests/integration/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
add_executable(IntegrationTests
|
||||
main.cpp
|
||||
tst_Smoke.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(IntegrationTests PRIVATE
|
||||
pgintegration
|
||||
GTest::gtest
|
||||
Qt6::Core
|
||||
)
|
||||
|
||||
target_compile_definitions(IntegrationTests PRIVATE
|
||||
PGTEST_FIXTURE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/fixtures"
|
||||
)
|
||||
|
||||
set_target_properties(IntegrationTests PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
)
|
||||
|
||||
option(PGLAB_INTEGRATION_TESTS "Register Docker based PostgreSQL integration tests" OFF)
|
||||
|
||||
if (PGLAB_INTEGRATION_TESTS)
|
||||
set(PGTEST_COMPOSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/docker-compose.yml)
|
||||
|
||||
add_test(NAME db_up
|
||||
COMMAND docker compose -f ${PGTEST_COMPOSE_FILE} up -d --wait)
|
||||
add_test(NAME db_down
|
||||
COMMAND docker compose -f ${PGTEST_COMPOSE_FILE} down -v)
|
||||
set_tests_properties(db_up PROPERTIES FIXTURES_SETUP pgcluster LABELS integration)
|
||||
set_tests_properties(db_down PROPERTIES FIXTURES_CLEANUP pgcluster LABELS integration)
|
||||
|
||||
foreach (v 14 15 16 17)
|
||||
add_test(NAME integration_pg${v} COMMAND IntegrationTests)
|
||||
set_tests_properties(integration_pg${v} PROPERTIES
|
||||
FIXTURES_REQUIRED pgcluster
|
||||
LABELS integration
|
||||
ENVIRONMENT "TEST_DATABASE_URL=postgresql://postgres:test@localhost:543${v}/postgres")
|
||||
endforeach ()
|
||||
else ()
|
||||
add_test(NAME IntegrationTests COMMAND IntegrationTests)
|
||||
set_tests_properties(IntegrationTests PROPERTIES LABELS integration)
|
||||
endif ()
|
||||
Loading…
Add table
Add a link
Reference in a new issue