Report test results as XML for Jenkins

This commit is contained in:
nsubiron 2018-07-06 18:14:38 +02:00
parent 90b58429bb
commit 113dc4b6b8
4 changed files with 43 additions and 7 deletions

3
Jenkinsfile vendored
View File

@ -37,7 +37,7 @@ pipeline {
stage('Unit Tests') {
steps {
sh 'make check'
sh 'make check ARGS="--all --xml"'
}
}
@ -58,6 +58,7 @@ pipeline {
post {
always {
junit 'Build/test-results/*.xml'
archiveArtifacts 'Dist/*.tar.gz'
deleteDir()
}

View File

@ -0,0 +1,4 @@
[unittest]
plugins = nose2.plugins.junitxml
[junit-xml]
path = test-results.xml

View File

@ -9,7 +9,7 @@ source $(dirname "$0")/Environment.sh
DOC_STRING="Run unit tests."
USAGE_STRING=$(cat <<- END
Usage: $0 [-h|--help] [--gdb] [--gtest_args=ARGS]
Usage: $0 [-h|--help] [--gdb] [--xml] [--gtest_args=ARGS]
Then either ran all the tests
@ -24,13 +24,14 @@ END
)
GDB=
XML_OUTPUT=false
GTEST_ARGS=
LIBCARLA_RELEASE=false
LIBCARLA_DEBUG=false
PYTHON_API_2=false
PYTHON_API_3=false
OPTS=`getopt -o h --long help,gdb,gtest_args:,all,libcarla-release,libcarla-debug,python-api-2,python-api-3,benchmark -n 'parse-options' -- "$@"`
OPTS=`getopt -o h --long help,gdb,xml,gtest_args:,all,libcarla-release,libcarla-debug,python-api-2,python-api-3,benchmark -n 'parse-options' -- "$@"`
if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2 ; fi
@ -41,6 +42,9 @@ while true; do
--gdb )
GDB="gdb --args";
shift ;;
--xml )
XML_OUTPUT=true;
shift ;;
--gtest_args )
GTEST_ARGS="$2";
shift ;;
@ -86,17 +90,29 @@ fi
if ${LIBCARLA_DEBUG} ; then
if ${XML_OUTPUT} ; then
EXTRA_ARGS="--gtest_output=xml:${CARLA_TEST_RESULTS_FOLDER}/libcarla-debug.xml"
else
EXTRA_ARGS=
fi
log "Running LibCarla unit tests debug."
LD_LIBRARY_PATH=${LIBCARLA_INSTALL_SERVER_FOLDER}/lib ${GDB} ${LIBCARLA_INSTALL_SERVER_FOLDER}/test/libcarla_test_debug ${GTEST_ARGS}
LD_LIBRARY_PATH=${LIBCARLA_INSTALL_SERVER_FOLDER}/lib ${GDB} ${LIBCARLA_INSTALL_SERVER_FOLDER}/test/libcarla_test_debug ${GTEST_ARGS} ${EXTRA_ARGS}
fi
if ${LIBCARLA_RELEASE} ; then
if ${XML_OUTPUT} ; then
EXTRA_ARGS="--gtest_output=xml:${CARLA_TEST_RESULTS_FOLDER}/libcarla-release.xml"
else
EXTRA_ARGS=
fi
log "Running LibCarla unit tests release."
LD_LIBRARY_PATH=${LIBCARLA_INSTALL_SERVER_FOLDER}/lib ${GDB} ${LIBCARLA_INSTALL_SERVER_FOLDER}/test/libcarla_test_release ${GTEST_ARGS}
LD_LIBRARY_PATH=${LIBCARLA_INSTALL_SERVER_FOLDER}/lib ${GDB} ${LIBCARLA_INSTALL_SERVER_FOLDER}/test/libcarla_test_release ${GTEST_ARGS} ${EXTRA_ARGS}
fi
@ -106,11 +122,21 @@ fi
pushd "${CARLA_PYTHONAPI_ROOT_FOLDER}/test" >/dev/null
if ${XML_OUTPUT} ; then
EXTRA_ARGS="-X"
else
EXTRA_ARGS=
fi
if ${PYTHON_API_2} ; then
log "Running Python API for Python 2 unit tests."
/usr/bin/env python2 -m nose2
/usr/bin/env python2 -m nose2 ${EXTRA_ARGS}
if ${XML_OUTPUT} ; then
mv test-results.xml ${CARLA_TEST_RESULTS_FOLDER}/python-api-2.xml
fi
fi
@ -118,7 +144,11 @@ if ${PYTHON_API_3} ; then
log "Running Python API for Python 3 unit tests."
/usr/bin/env python3 -m nose2
/usr/bin/env python3 -m nose2 ${EXTRA_ARGS}
if ${XML_OUTPUT} ; then
mv test-results.xml ${CARLA_TEST_RESULTS_FOLDER}/python-api-3.xml
fi
fi

View File

@ -4,6 +4,7 @@ CARLA_ROOT_FOLDER=${CURDIR}
CARLA_BUILD_FOLDER=${CURDIR}/Build
CARLA_DIST_FOLDER=${CURDIR}/Dist
CARLA_BUILD_TOOLS_FOLDER=${CURDIR}/Util/BuildTools
CARLA_TEST_RESULTS_FOLDER=${CARLA_BUILD_FOLDER}/test-results
CARLAUE4_ROOT_FOLDER=${CURDIR}/Unreal/CarlaUE4
CARLAUE4_PLUGIN_ROOT_FOLDER=${CURDIR}/Unreal/CarlaUE4/Plugins/Carla