#!/usr/bin/env bash ############################################################ # # test-acceptance.sh # # Runs acceptance tests from a specified file against # an edX platform sandbox. # # Note: this script is invoked from the ORA Makefile and # should not normally be used directly. # # Usage: # # ./test-acceptance.sh {test_file} # ############################################################ cd `dirname $BASH_SOURCE` && cd .. # Note: support BASE_URL as a synonym for ORA_SANDBOX_URL for backward compatibility if [[ $BASE_URL ]]; then export ORA_SANDBOX_URL="$BASE_URL" fi if [[ -z $ORA_SANDBOX_URL ]]; then echo "Error: ORA_SANDBOX_URL must be set to point to your sandbox" exit 1 fi mkdir -p test/logs cd test/logs test_name="${1:-acceptance}" # The machines that these tests run on in jenkins have an old # version of npm which doesn't seem to work with the # requirements in this repo. There is a devops ticket for # this, but it may be better to wait until some of the other # work they have going on now is done before attempting to # install the custom rules via npm. This bit of code is a # work around for that. It will work both in jenkins and for # local runs of the tests. if [[ "${test_name}" = "accessibility" ]]; then export BOKCHOY_A11Y_CUSTOM_RULES_FILE=../../test/custom_a11y_rules.js if [[ ! -f $BOKCHOY_A11Y_CUSTOM_RULES_FILE ]]; then echo "Custom a11y rules file not found. Fetching it..." custom_a11y_version=8633ea2fd04d84d69c4610bbfbf38db32ad005a9 curl https://raw.githubusercontent.com/edx/edx-custom-a11y-rules/${custom_a11y_version}/lib/custom_a11y_rules.js > ${BOKCHOY_A11Y_CUSTOM_RULES_FILE} fi fi echo "Running acceptance tests from ${test_name}.py against the sandbox..." nosetests ../acceptance/${test_name}.py --with-xunit --xunit-file=../acceptance/xunit-${test_name}.xml