From 66ffc0e29b072921882ef6443944b6d48b07328a Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Mon, 24 May 2021 15:33:35 +0100 Subject: [PATCH] Run tests directly from the Makefile Depends on: https://github.com/alphagov/notifications-aws/pull/905 Previously this would print some custom text with each step, and as optionally loading a virtual environment. This moves the actual test commands to the Makefile. While this no longer prints custom text, it does print the command that was run: Before (skipping other output): ./scripts/run_tests.sh Code style check passed Import order check passed ... JavaScript tests have passed ... Unit tests have passed After (skipping other output): flake8 . isort --check-only ./app ./tests npm test ... py.test -n auto --maxfail=10 tests/ ... I think it's more useful to see the command being run, rather than having to wait until it succeeds to know what was happening. Having the command also makes it easier to run it again if it fails, rather than having to go and find it in a script. --- Makefile | 5 ++++- scripts/run_tests.sh | 37 ------------------------------------- 2 files changed, 4 insertions(+), 38 deletions(-) delete mode 100755 scripts/run_tests.sh diff --git a/Makefile b/Makefile index 8f6532575..f168109cd 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,10 @@ generate-version-file: ## Generates the app version file .PHONY: test test: ## Run tests - ./scripts/run_tests.sh + flake8 . + isort --check-only ./app ./tests + npm test + py.test -n auto --maxfail=10 tests/ .PHONY: fix-imports fix-imports: diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh deleted file mode 100755 index 0b1096e6b..000000000 --- a/scripts/run_tests.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# -# Run project tests -# -# NOTE: This script expects to be run from the project root with -# ./scripts/run_tests.sh - -set -o pipefail - -function display_result { - RESULT=$1 - EXIT_STATUS=$2 - TEST=$3 - - if [ $RESULT -ne 0 ]; then - echo -e "\033[31m$TEST failed\033[0m" - exit $EXIT_STATUS - else - echo -e "\033[32m$TEST passed\033[0m" - fi -} - -if [[ -z "$VIRTUAL_ENV" ]] && [[ -d venv ]]; then - source ./venv/bin/activate -fi - -flake8 . -display_result $? 1 "Code style check" - -isort --check-only ./app ./tests -display_result $? 2 "Import order check" - -npm test -display_result $? 3 "Javascript tests have" - -py.test -n auto --maxfail=10 tests/ -display_result $? 4 "Unit tests have"