diff --git a/.coveralls.yml b/.coveralls.yml new file mode 100644 index 0000000000000000000000000000000000000000..f289677959bd44b3413a523bc929f368e8b400e7 --- /dev/null +++ b/.coveralls.yml @@ -0,0 +1,3 @@ +service_name: travis-ci +src_dir: . +coverage_clover: build/logs/clover-*.xml \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 95003d4a4095a71dd95e33e274cd8e16608c2ee3..5029c10ccaf328f8688b6a3df38772ad53e1e680 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,20 @@ matrix: allow_failures: - php: hhvm - php: 5.6 + - php: 5.4 + env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Core + - php: 5.4 + env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Plugins + - php: 5.4 + env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Integration + include: + # Code Coverage + - php: 5.4 + env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Core + - php: 5.4 + env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Plugins + - php: 5.4 + env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Integration exclude: # Javascript tests need to run only on one PHP version - php: 5.4 @@ -91,6 +105,10 @@ install: - git checkout master -- ./tests/travis ./plugins/CoreConsole || true before_script: + - if [ -z "$TEST_SUITE" ]; + then composer require satooshi/php-coveralls dev-master; + fi + - ./tests/travis/configure_git.sh # print out mysql information @@ -139,6 +157,10 @@ after_script: # change directory back to root travis dir - cd $PIWIK_ROOT_DIR + - if [ -z "$TEST_SUITE" ]; + then php vendor/bin/coveralls -v; + fi + # output contents of files w/ debugging info to screen - cat /var/log/nginx/error.log - cat $PIWIK_ROOT_DIR/tmp/php-fpm.log diff --git a/README.md b/README.md index 89735fdc94e5dfe914f559f241f44fcd7cb1e53a..d5ed6456d326e6e01ae1f05edd7050671e794699 100644 --- a/README.md +++ b/README.md @@ -101,3 +101,5 @@ The Piwik project uses an ever-expanding comprehensive set of thousands of unit Build status (master branch) [](https://travis-ci.org/piwik/piwik) - Screenshot tests Build [](https://travis-ci.org/piwik/piwik-ui-tests) +Code Coverage: [](https://coveralls.io/r/piwik/piwik?branch=master) + diff --git a/plugins/CoreConsole/templates/travis.yml.twig b/plugins/CoreConsole/templates/travis.yml.twig index 6b52f22558772e430ff8a857d56f3bacd2cfa83f..553f5ae7b44021f48eef711f150debee48d3d5d9 100644 --- a/plugins/CoreConsole/templates/travis.yml.twig +++ b/plugins/CoreConsole/templates/travis.yml.twig @@ -96,6 +96,10 @@ install: {% endif %} before_script: + - if [ -z "$TEST_SUITE" ]; + then composer require satooshi/php-coveralls dev-master; + fi + - ./tests/travis/configure_git.sh # print out mysql information @@ -147,6 +151,10 @@ after_script: # change directory back to root travis dir - cd $PIWIK_ROOT_DIR + - if [ -z "$TEST_SUITE" ]; + then php vendor/bin/coveralls -v; + fi + # output contents of files w/ debugging info to screen - cat /var/log/nginx/error.log - cat $PIWIK_ROOT_DIR/tmp/php-fpm.log diff --git a/tests/PHPUnit/phpunit.xml.dist b/tests/PHPUnit/phpunit.xml.dist index d344206dd2aa147e84d49a7f1a6e19461a5ad4c4..26fbd60a596d36985758f3004b36ecfb6f6f3841 100644 --- a/tests/PHPUnit/phpunit.xml.dist +++ b/tests/PHPUnit/phpunit.xml.dist @@ -47,4 +47,17 @@ </testsuite> </testsuites> +<filter> + <whitelist addUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">../../core</directory> + <directory suffix=".php">../../plugins</directory> + <exclude> + <directory suffix=".php">../../core/Updates</directory> + <directory suffix=".php">../../plugins/*/Updates</directory> + <directory suffix=".php">../../plugins/*/libs</directory> + <directory suffix=".php">../../plugins/*/tests</directory> + </exclude> + </whitelist> +</filter> + </phpunit> diff --git a/tests/travis/travis.sh b/tests/travis/travis.sh index b3d0a7f3754d6f0934b91c62c873d9b2a8347109..2d1d9ebac1e9d74998a204901cae677c43c76398 100755 --- a/tests/travis/travis.sh +++ b/tests/travis/travis.sh @@ -64,5 +64,17 @@ then fi fi else - travis_wait phpunit --configuration phpunit.xml --coverage-text --colors + if [ "$COVERAGE" = "Integration" ] + then + echo "Executing non Integration tests in test suite IntegrationTests..." + phpunit --configuration phpunit.xml --testsuite IntegrationTests --exclude-group Integration --colors --coverage-clover $TRAVIS_BUILD_DIR/build/logs/clover-integration.xml || true + elif [ "$COVERAGE" = "Core" ] + then + echo "Executing tests in test suite CoreTests..." + phpunit --configuration phpunit.xml --testsuite CoreTests --colors --coverage-clover $TRAVIS_BUILD_DIR/build/logs/clover-core.xml || true + elif [ "$COVERAGE" = "Plugins" ] + then + echo "Executing tests in test suite PluginTests..." + phpunit --configuration phpunit.xml --testsuite PluginTests --colors --coverage-clover $TRAVIS_BUILD_DIR/build/logs/clover-plugins.xml || true + fi; fi \ No newline at end of file