xenadmin/mk/tests-checks-cover.sh
Callum McIntyre 603e58ac49 [CP-19888] Add support for code coverage in build jobs
Add support for a new environment variable REPORT_COVERAGE, which causes the tests phase to use the new script tests-checks-cover instead of tests-checks.This new script wraps the tests-checks script, by instrumenting NCover to monitor before it runs, and writing a summary log and generating a HTML report of coverage in the workspace output directory.
2016-12-02 14:36:59 +00:00

57 lines
2.0 KiB
Bash

#!/bin/bash
# Copyright (c) Citrix Systems Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms,
# with or without modification, are permitted provided
# that the following conditions are met:
#
# * Redistributions of source code must retain the above
# copyright notice, this list of conditions and the
# following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the
# following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
set -u
source "$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/declarations.sh"
net start ncover || true # May fail if ncover already running, so ignore that error
echo "Running + monitoring coverage of tests..."
export NCOVER_USING_PROJECT="${NCOVER_PROJECT_ID}"
export NCOVER_BUILD_ID="${BUILD_ID}"
source "$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/tests-checks.sh"
ncover summarize --project="XC Tests" --wait
echo "Generating coverage report..."
ncover report --project="XC Tests" --execution="${BUILD_ID}" --file="$(cygpath -d ${TEST_DIR})\coverage.html" --detail=method
cp ${TEST_DIR}/coverage.html ${OUTPUT_DIR}
net stop ncover