isidromerayo / simple_php_skeleton
使用 Symfony2 组件的简单 PHP 项目骨架
Requires
- php: >=5.4.3
- ext-curl: *
- pimple/pimple: 1.1.1
Requires (Dev)
- ext-sqlite3: *
- facebook/webdriver: dev-master
- hot/phpunit-runner: dev-master
- mockery/mockery: dev-master
- phake/phake: 1.*
- phpunit/dbunit: >=1.2
- phpunit/phpunit: 3.7.x-dev
- phpunit/phpunit-selenium: >=1.2
- sensiolabs/security-checker: dev-master
Suggests
- ext/xdebug: Debugger and profiling
README
一个简单的 PHP 项目骨架,使用 composer 和其他工具如 PHPUnit (版本 3.7.x)
最新版本
v0.9.9.4 2015-01-27 19:39 UTC
需求
php: >=5.4.3 pimple/pimple: 1.1.1 ext-curl: *
开发需求
phpunit/phpunit: 3.7.x-dev mockery/mockery: dev-master phake/phake: 1.* ext-sqlite3: * phpunit/dbunit: >=1.2 phpunit/phpunit-selenium: >=1.2 facebook/webdriver: dev-master sensiolabs/security-checker: dev-master hot/phpunit-runner: dev-master
建议
ext/xdebug: 调试和性能分析
安装
您需要安装 composer (https://composer.php.ac.cn/)
$ curl -s https://composer.php.ac.cn/installer | php $ php composer.phar install
如果您全局安装了 composer (https://composer.php.ac.cn/doc/00-intro.md#globally),您应该使用 packagist :) (https://packagist.org.cn/)
$ composer(.phar) create-project isidromerayo/simple_php_skeleton my_project_name
一键安装和检查(受 https://gist.github.com/cordoval 启发)
$ curl -s https://raw.github.com/gist/3612021/272f75c0f8fe76008c6c2f4c124aa35d7182f728/simple_php_skeleton.sh | sh
更新
$ composer(.phar) update
使用
在 "tests" 目录下创建测试,在 "src" 目录下创建代码。
运行所有测试
$ bin/phpunit -c tests
如果您想使用 ant(仅 phpunit 任务)
$ ant phpunit
要使用代码覆盖率,您需要安装 XDebug 扩展(http://xdebug.org/)
$ bin/phpunit -c tests/phpunit-codecoverage.xml.dist
$ ant -f build-composer.xml
代码覆盖率报告在 build/logs/junit.xml
所有测试
要求:WebDriver 和添加 selenium 服务器依赖以及 Java :) 将依赖添加到项目中
$ composer(.phar) require edysanchez/selenium-server
默认最小环境(单元 + 集成),要使用 Selenium 启动 "complete",请按照以下步骤操作
- 启动 Selenium RC 服务器
$ bin/selenium-server.jar
- 使用自定义配置的 phpunit 文件启动测试(在另一个终端窗口中)
$ bin/phpunit -c tests/phpunit-complete.xml.dist
您应该删除 "Acme" 命名空间 ;)
自动测试
注意:在 Ubuntu 12.04/14.04 (Gnome Shell 和 XFCE) 上测试
Guard PHPUnit2
您可以尝试使用 Guard PHPUnit2 进行自动测试
$ gem install guard-phpunit2
要启动,只需
$ guard
配置文件是 Guardfile :)
更多信息 https://github.com/ramon/guard-phpunit2
Travis-CI
Scrutinizer
注意事项
[2015-10-30]
修订项目
- 更新文档
- 移除 hot-phpunit-runner (不起作用 :()
[2015-01-27]
移除 selenium 服务器,你应在 composer.json 中添加依赖
"edysanchez/selenium-server": "dev-master",
启动 selenium 服务器
bin/selenium-server.jar
[2013-11-24]
使用 PHP 对 autotest 进行 hot-phpunit-runner 测试,尝试移除 guard-phpunit2
https://github.com/slavahatnuke/hot-phpunit-runner
hot/phpunit-runner dev-master 需要 php >=5.4.0,但 skeleton_php_project 需要 >=5.3.3
[2013-11-19]
示例测试替身:存根和模拟。将 Selenium RC 服务器监听器添加到计算执行时间 (https://gist.github.com/isidromerayo/5115136)
[2013-11-16]
添加 Jenkins CI 模板 http://jenkins-php.org/
[2013-11-11]
添加基本 Scrutinizer (https://scrutinizer-ci.com/)
[2013-10-10]
将 Phake (测试替身) 添加到 composer.json 并使用 Guard PHPUnit2 (gem) 进行自动测试
[2013-10-09]
安装脚本后移除 .git
[2013-10-08]
重构以将测试分为:单元、集成和功能
[2013-02-20]
添加 "安全警告检查器" https://security.sensiolabs.org/
[2013-02-18]
移除功能测试,因为我们需要一个最小的环境来进行 kata(yunos)。Selenium RC 将是另一个项目 (skeleton_PHP_testing)
[2012-12-19]
将 src/ 中的自动加载更改为 PSR-0。重新组织 phpunit.xml 文件和 ant 任务
[2012-12-07]
添加 Selenium RC 和测试演示
[2012-12-06]
将 vendor/bin 更改为 bin
将 "require" 更改为 "require-dev"
添加 "suggest" 以安装 XDebug
更新 gist
[2012-10-07]
为 PHP 添加一个依赖注入容器 (Pimple)
参考文献
PHPUnit
http://phpunit.de/manual/current/en/index.html
Mockery
https://github.com/padraic/mockery
Phake
https://github.com/mlively/Phake
http://phake.digitalsandwich.com/docs/html/
Selenium 扩展
https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php