繁体   English   中英

提交前挂钩检查Symfony的PHP代码覆盖率和代码嗅探器

[英]Pre commit hook to check PHP code coverage and code sniffer for Symfony

如何为PHP Symfony代码做一个预提交挂钩,以分析代码覆盖率和代码嗅探报告? 我应该使用哪些命令和工具?

到目前为止,我可以使用三叶草格式的PHPUnit生成代码覆盖率报告:

#!/bin/bash

echo "##################################################################################################"
echo "Starting PHPUnit tests : "`date "+%y-%m-%d %H-%M-%S"`
echo "##################################################################################################"

php app/console -e=dev doctrine:database:drop --force
php app/console -e=dev doctrine:database:create
php app/console -e=dev doctrine:schema:create
php app/console -e=dev -n doctrine:fixtures:load
#phpunit -c app --coverage-html build/html
phpunit -c app --log-junit build/unit.xml
'[' -f build/coverage.xml ']'
phpunit -c app --coverage-clover build/coverage.xml
php app/console -e=dev doctrine:schema:drop --force
php app/console -e=dev doctrine:database:drop --force
echo "Finishing Cron at "`date "+%y-%m-%d %H-%M-%S"`
echo "Cron Task Complete"
echo "##################################################################################################"

如果您的bash脚本按预期工作,则只需将其命名为pre-commit并将其放入git钩子中: /path/to/repo/.git/hooks 您将在此目录中找到一些示例。

有关git hooks的更多信息: https : //git-scm.com/book/zh/v2/Customizing-Git-Git-Hooks

然后,为您编码嗅探器,我建议https://github.com/squizlabs/PHP_CodeSniffer

还有https://github.com/phpro/grumphp可以为您做所有事情。

当您可以通过客户端git钩子轻松完成它时,无需使用grumphp。 下面的示例运行php-cs-fixer,并在您运行git push origin .....时防止将损坏的代码推送到github存储库中。

your_project_folder / git的/钩/预推

#!/bin/sh

if [ -f ./bin/php-cs-fixer ]
then
    ./bin/php-cs-fixer fix --dry-run --verbose --diff src
    if [ $? -ne 0 ]
    then
        printf "\n\t\033[1;31m[PHP-CS-Fixer] Push Aborted\n\n\033[0m"

        return 1
    fi
fi

授予权限

chmod +x .git/hooks/pre-push

测试

git push origin .....

在这里查看示例

内缩进

[英]Indentation inside of <?php tag with PHP Code Sniffer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM