]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - Makefile
LinkDB: move to a proper file, add test coverage
[github/shaarli/Shaarli.git] / Makefile
index e6f428531f16f7511e5b0b9a9e32489c0718b1c2..80efcfaafd0e2973c4ea73aaf0c33e3ff77a0ca0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -8,12 +8,15 @@
 # - install/update test dependencies:
 #   $ composer install  # 1st setup
 #   $ composer update
+# - install Xdebug for PHPUnit code coverage reports:
+#   - see http://xdebug.org/docs/install
+#   - enable in php.ini
 
 BIN = vendor/bin
-PHP_SOURCE = index.php
-MESS_DETECTOR_RULES = cleancode,codesize,controversial,design,naming,unusedcode
+PHP_SOURCE = index.php application tests
+PHP_COMMA_SOURCE = index.php,application,tests
 
-all: static_analysis_summary
+all: static_analysis_summary test
 
 ##
 # Concise status of the project
@@ -21,6 +24,7 @@ all: static_analysis_summary
 ##
 
 static_analysis_summary: code_sniffer_source copy_paste mess_detector_summary
+       @echo
 
 ##
 # PHP_CodeSniffer
@@ -62,6 +66,7 @@ copy_paste:
 # Detects PHP syntax errors, sorted by category
 # Rules documentation: http://phpmd.org/rules/index.html
 ##
+MESS_DETECTOR_RULES = cleancode,codesize,controversial,design,naming,unusedcode
 
 mess_title:
        @echo "-----------------"
@@ -70,11 +75,11 @@ mess_title:
 
 ###  - all warnings
 mess_detector: mess_title
-       @$(BIN)/phpmd $(PHP_SOURCE) text $(MESS_DETECTOR_RULES) | sed 's_.*\/__'
+       @$(BIN)/phpmd $(PHP_COMMA_SOURCE) text $(MESS_DETECTOR_RULES) | sed 's_.*\/__'
 
 ### - all warnings + HTML output contains links to PHPMD's documentation
 mess_detector_html:
-       @$(BIN)/phpmd $(PHP_SOURCE) html $(MESS_DETECTOR_RULES) \
+       @$(BIN)/phpmd $(PHP_COMMA_SOURCE) html $(MESS_DETECTOR_RULES) \
        --reportfile phpmd.html || exit 0
 
 ### - warnings grouped by message, sorted by descending frequency order
@@ -85,10 +90,24 @@ mess_detector_grouped: mess_title
 ### - summary: number of warnings by rule set
 mess_detector_summary: mess_title
        @for rule in $$(echo $(MESS_DETECTOR_RULES) | tr ',' ' '); do \
-               warnings=$$($(BIN)/phpmd $(PHP_SOURCE) text $$rule | wc -l); \
+               warnings=$$($(BIN)/phpmd $(PHP_COMMA_SOURCE) text $$rule | wc -l); \
                printf "$$warnings\t$$rule\n"; \
        done;
 
+##
+# PHPUnit
+# Runs unitary and functional tests
+# Generates an HTML coverage report if Xdebug is enabled
+#
+# See phpunit.xml for configuration
+# https://phpunit.de/manual/current/en/appendixes.configuration.html
+##
+test: clean
+       @echo "-------"
+       @echo "PHPUNIT"
+       @echo "-------"
+       @$(BIN)/phpunit tests
+
 ##
 # Targets for repository and documentation maintenance
 ##
@@ -107,4 +126,4 @@ doc: clean
 htmldoc:
        for file in `find doc/ -maxdepth 1 -name "*.md"`; do \
                pandoc -f markdown_github -t html5 -s -c "github-markdown.css" -o doc/`basename $$file .md`.html "$$file"; \
-       done;
\ No newline at end of file
+       done;