unittest/scripts/Makefile

101 line
4.0 KiB
Makefile

COV2_CMD=venv2/bin/coverage
COV3_CMD=venv3/bin/coverage
PYT2_CMD=venv2/bin/python
PYT3_CMD=venv3/bin/python
PDF_CMD=xdg-open
OUTDIR=testresults
TEXFILE=$(OUTDIR)/unittest.tex
PDFFILE=$(OUTDIR)/unittest.pdf
.PHONY: all help venv2 venv3 release full short smoke single testrun_full testrun_short testrun_smoke testrun_single coverage_analysis finalise status compile release_testcases publish view clean
all: full
help:
@echo "make [target]"
@echo " Here is a list of the most helpfull targets:"
@echo " - release: Release the testcases, creates a pdf ducument including all testcases and copy testdata to the module"
@echo " ----------------------------------------------------------------------------------------------------------------"
@echo " - full: Create a pdf ducument including all testcases"
@echo " - short: Create a pdf ducument including most testcases"
@echo " - smoke: Create a pdf ducument including some testcases"
@echo " - single: Create a pdf ducument including one testcases"
@echo " ----------------------------------------------------------------------------------------------------------------"
@echo " - testrun_full: Run all testcases"
@echo " - testrun_short: Run most testcases"
@echo " - testrun_smoke: Run some testcases"
@echo " - testrun_single: Run one testcases"
release: testrun_full coverage_analysis finalise compile publish status
full: testrun_full finalise compile status
short: testrun_short finalise compile status
smoke: testrun_smoke finalise compile status
single: testrun_single finalise compile status
venv:
@[[ -d venv2 ]] || make venv2
@[[ -d venv3 ]] || make venv3
venv2:
virtualenv -p /usr/bin/python2 venv2
venv2/bin/pip install --upgrade pip
venv2/bin/pip install -r requirements.txt
venv3:
virtualenv -p /usr/bin/python3 venv3
venv3/bin/pip install --upgrade pip
venv3/bin/pip install -r requirements.txt
clean: venv
@echo -e "\033[1;33mCleaning up unittest...\e[0m"
@echo -e "\e[1m * Testresults from last testrun\e[0m"
@ls testresults | xargs -i echo " testresults/{}"
@ls testresults | xargs -i rm -f "testresults/{}"
@echo -e "\e[1m * Collected coverage information\e[0m"
@$(COV3_CMD) erase
cleanall: clean
@echo -e "\e[1m * Virtualenv\e[0m"
@rm -rf venv?
release_testcases:
@$(PYT3_CMD) src/unittest/scripts/unittest.py release_testcases
prepare: venv
@$(PYT3_CMD) src/unittest/scripts/unittest.py prepare
testrun_full: clean prepare
@$(COV2_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e full
@$(COV3_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e full
testrun_short: clean prepare
@$(COV2_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e short
@$(COV3_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e short
testrun_smoke: clean prepare
@$(COV2_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e smoke
@$(COV3_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e smoke
testrun_single: clean prepare
@$(COV2_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e single
@$(COV3_CMD) run -a --branch --source=`$(PYT3_CMD) src/config.py -p` src/unittest/scripts/unittest.py testrun -e single
coverage_analysis:
@echo "\e[1m\e[93mCreating Coverage-XML-File: $(pwd)/testresults/coverage.xml\e[0m"
@$(COV3_CMD) xml -o testresults/coverage.xml
finalise: coverage_analysis
@$(PYT3_CMD) src/unittest/scripts/unittest.py finalise
compile:
@latexmk -pdf -quiet -pdflatex="pdflatex -interaction=nonstopmode" -output-directory=$(OUTDIR) -use-make $(TEXFILE) > /dev/null
status:
@$(PYT3_CMD) src/unittest/scripts/unittest.py status
publish:
@$(PYT3_CMD) src/unittest/scripts/unittest.py publish
view:
@$(PDF_CMD) $(PDFFILE)