From cda600f12d0e03dffdbdbf77a72ba27a85336db2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 29 Dec 2017 13:16:52 +0100 Subject: [PATCH] Don't halt build when encountering duplicate tests I had duplicate tests because multiple plug-ins were interfering with each other. We shouldn't crash on that. Contributes to issue CURA-4692. --- cmake/CuraTests.cmake | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/cmake/CuraTests.cmake b/cmake/CuraTests.cmake index a8af16c28c..3cb5a705b3 100644 --- a/cmake/CuraTests.cmake +++ b/cmake/CuraTests.cmake @@ -28,12 +28,17 @@ function(cura_add_test) string(REPLACE "|" ":" _PYTHONPATH ${_PYTHONPATH}) endif() - add_test( - NAME ${_NAME} - COMMAND ${PYTHON_EXECUTABLE} -m pytest --junitxml=${CMAKE_BINARY_DIR}/junit-${_NAME}.xml ${_DIRECTORY} - ) - set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT LANG=C) - set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT "PYTHONPATH=${_PYTHONPATH}") + get_test_property(${_NAME} ENVIRONMENT test_exists) #Find out if the test exists by getting a property from it that always exists (such as ENVIRONMENT because we set that ourselves). + if (${test_exists} EQUAL "NOTFOUND") + add_test( + NAME ${_NAME} + COMMAND ${PYTHON_EXECUTABLE} -m pytest --junitxml=${CMAKE_BINARY_DIR}/junit-${_NAME}.xml ${_DIRECTORY} + ) + set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT LANG=C) + set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT "PYTHONPATH=${_PYTHONPATH}") + else() + message(WARNING "Duplicate test ${_NAME}!") + endif() endfunction() cura_add_test(NAME pytest-main DIRECTORY ${CMAKE_SOURCE_DIR}/tests PYTHONPATH "${CMAKE_SOURCE_DIR}|${URANIUM_DIR}")