yipl / hookah
使用PHPUnit的烟雾测试库
Requires
- php: >=5.6
- brianium/paratest: ~0.12
- fabpot/goutte: ~3.1
- phpunit/phpunit: ~5.1
- dev-master
- 1.6.25
- 0.6.1
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-remove-circle-ci-file
- dev-HK-16
- dev-codeclimate-badge
- dev-change-url-to-openshift
- dev-codeclimate
- dev-phpunit-5.1
- dev-goutte-update
- dev-analysis-zDwRnq
- dev-test-try
- dev-try-goutte-3
- dev-wercker-docker
- dev-wercker-classic
- dev-analysis-866PN8
- dev-circle-ci
- dev-add-packagist-to-readme
- dev-readme-for-no-config
- dev-remove-config
This package is not auto-updated.
Last update: 2024-09-15 23:19:01 UTC
README
还记得那个“巴杰”(祖父)烟斗吗?我们在YIPL记得它。
Hookah是一个针对任何Web应用的轻量级烟雾测试命令行库。作为一个简单的合理性检查,它检查给定的URL是否返回正确的响应代码,并且内容不为空。在你听这首hookah mero song(Karma乐队)的时候,测试通常会完成。基本上,它就像上图中的“巴杰”(祖父)在测试你的应用,他不知道如何点击东西、填写表单等等,他只是说是否看到了内容或者空白页面。这就是烟雾测试。
如果你想进行其他行为级别的测试,可以使用Behat/Mink或CasperJs。
构建状态
它本身没有测试,但会检查配置中提供的网站之一。例如,以下是一个Drupal 7测试安装状态的示例
代码质量
代码质量在CodeClimate上进行分析。
先决条件
您需要在系统上安装PHP并运行composer,该软件包依赖于PHPUnit和Goutte 2.x。Goutte依赖于Guzzle。
安装
可以从以下github仓库克隆Hookah并按照以下步骤安装
- git clone git@github.com:younginnovations/hookah.git
- cd hookah
- composer install --prefer-dist
与其他项目一起使用
您可以使用hookah与其他项目一起使用,它可在packagist上找到,您可以使用composer获取它。以下是一些方法
使用composer require
您可以通过以下方式运行composer require来将hookah添加到您的composer.json文件中
composer require --dev yipl/hookah
将hookah添加到您的composer.json文件中
您甚至可以在composer.json
的require-dev
部分添加以下内容
"yipl/hookah": "~0.4"
如果您想使用goutte ~3.1,请使用以下版本
"yipl/hookah": "~0.5"
如果您想使用phpunit ~5.1(它需要PHP 5.6或更高版本),请使用以下版本
"yipl/hookah": "~0.6"
运行
可以使用以下命令运行应用程序
- 使用命令
composer install
安装应用程序依赖项 - 然后运行
./vendor/bin/phpunit
如果您有网络连接,它应该像以下那样通过
它运行的速度取决于您的网络速度,因为它试图从以下测试 Drupal 7安装中获取大约7个URL。
更快地运行测试
您可以使用以下命令使用paratest更快地运行测试
./vendor/bin/paratest -f --colors -m 2 -p 4 tests
在本地机器上大约节省了一半的时间。
Docker
您的系统上没有安装PHP?没问题。如果您已经安装了docker,请在项目根目录下运行以下命令来运行Hookah
- docker pull geshan/php-composer-alpine
- docker run -v $(pwd):/var/www geshan/php-composer-alpine "composer install --prefer-dist"
- docker run -v $(pwd):/var/www geshan/php-composer-alpine "./vendor/bin/phpunit --version"
- docker run -v $(pwd):/var/www geshan/php-composer-alpine "./vendor/bin/phpunit"
第一条命令将从Docker Hub注册表中拉取容器,数据量仅为约~40 MB
。第二条命令将安装容器中的所有Composer依赖。
第三条命令是可选的,它只会打印phpunit版本。第四条命令将在Docker容器中运行测试。
结构
应用程序在tests\Smoke
文件夹中以非常简单的方式进行结构化。
Smoke文件夹包含其他2个文件夹
- 前端:用于测试未登录时网站/应用程序前端用户可见部分的响应代码。
- 后端:用于测试登录后可访问的网站/应用程序区域。
结构可以根据需要更改,因为现在这个应用程序是一个受这篇博客文章启发的smoke测试的验证(代码已经根据PSR-2和较新的库进行了不同的编写,但本质是相同的)。
设置
您可以在BaseTestCase.php
中设置基本URL,并在BaseUserTestCase.php
的构造函数方法中设置应用程序的用户,如下所示
/**
* @var string
*/
protected $baseUrl = 'http://drupal-test.jelastic.elastx.net/';
//other variables to override
/**
* @var string
*/
protected $loginPath = 'user/login';
/**
* @var string
*/
protected $usernameField = 'name';
/**
* @var string
*/
protected $passwordField = 'pass';
/**
* @var string
*/
protected $submitButtonText = 'Log in';
/**
* @var array
*/
protected $users = [
['role'=> 'admin', 'identifier' => 'admin', 'password' => '123admin'],
];
/**
* @var string
*/
protected $loggedInLinkText = 'Log out';
/**
* To be overridden by child class
*
* @var string
*/
protected $userRole = 'none';
您可以在从BaseTestCase.php文件扩展的PagesTest.Case中的providerFrontEnd
方法中添加您的前端路径,如下所示
return [
[$this->baseUrl, 200],
['about', 200],
['not-existing', 404],
['.git', 403],
];
它使用php unit 数据提供者来为每个前端测试运行测试用例。
后端部分也是如此。设置可以在从BaseUserTestCase类扩展的AdminUserTest
中找到,如下所示的providerBackEndPaths
方法
$adminPaths = [
['admin', 200],
['admin/config', 200],
['not-existing', 404]
];
目前,测试是为http://drupal-test.jelastic.elastx.net/
进行的,以验证概念,建议根据需要,在烟雾测试中使用预发布服务器而不是生产服务器。
编码约定
我们遵循PSR-2,甚至包括编写测试。
与travis的集成
它可以与travis CI集成,以在每次推送时运行测试,请检查此项目的根目录中的.travis.yml
文件。它也可以以相同的方式与其他CI系统集成。
贡献
我们期待您的反馈。