Skip to content

Commit 22cdfb2

Browse files
committedOct 23, 2019
build: add make targets for reporting coverage
To avoid the need to create a pull request to get Coverage report. Usage: $ make report-coverage-html Why `coverage3`? Because my Fedora box runs coverage with python2.7. Taken over from: https://github.com/jfilak/autorizator/blob/master/Makefile
1 parent 9dc3ad3 commit 22cdfb2

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
 

‎Makefile

+26
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
PYTHON_MODULE=pyodata
2+
PYTHON_BINARIES=
3+
PYTHON_MODULE_FILES=$(shell find $(PYTHON_MODULE) -type f -name '*.py')
4+
5+
TESTS_DIR=tests
6+
TESTS_UNIT_DIR=$(TESTS_DIR)
7+
TESTS_UNIT_FILES=$(shell find $(TESTS_UNIT_DIR) -type f -name '*.py')
28

39
PYTHON_BIN=python3
410

@@ -13,6 +19,13 @@ FLAKE8_BIN=flake8
1319
FLAKE8_CONFIG_FILE=.flake8
1420
FLAKE8_PARAMS=
1521

22+
COVERAGE_BIN=coverage3
23+
COVERAGE_REPORT_ARGS=--skip-covered
24+
COVERAGE_CMD_HTML=$(COVERAGE_BIN) html
25+
COVERAGE_HTML_DIR=.htmlcov
26+
COVERAGE_HTML_ARGS=$(COVERAGE_REPORT_ARGS) -d $(COVERAGE_HTML_DIR)
27+
COVERAGE_REPORT_FILES=$(PYTHON_BINARIES) $(PYTHON_MODULE_FILES)
28+
1629
all: check
1730

1831
.PHONY=check
@@ -24,10 +37,23 @@ lint: doc
2437
test:
2538
$(PYTHON_BIN) -m $(PYTEST_MODULE) $(PYTEST_PARAMS)
2639

40+
.coverage: $(COVERAGE_REPORT_FILES) $(TESTS_UNIT_FILES)
41+
$(MAKE) test PYTEST_PARAMS="--cov-report= --cov=$(PYTHON_MODULE)"
42+
43+
.PHONY: report-coverage-html
44+
report-coverage-html: .coverage
45+
@ echo "Generating HTML code coverage report ..."
46+
@ $(COVERAGE_CMD_HTML) $(COVERAGE_HTML_ARGS) $(COVERAGE_REPORT_FILES)
47+
@ echo "Report: file://$$(pwd)/$(COVERAGE_HTML_DIR)/index.html"
48+
2749
.PHONY=check
2850
check: lint test
2951

3052
.PHONY=doc
3153
doc:
3254
$(MAKE) -C docs html
3355
@ echo -e "\nOpen: file://$$(pwd)/docs/_build/html/index.html"
56+
57+
.PHONY=clean
58+
clean:
59+
rm --preserve-root -rf $(COVERAGE_HTML_DIR) .coverage

0 commit comments

Comments
 (0)
Please sign in to comment.