naldz / grootest
GrooTest 是主要用于功能测试的库集合
Requires
- php: >=5.3.3
- facebook/webdriver: dev-master
- phpunit/dbunit: >=1.2
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-21 10:52:38 UTC
README
什么是 GrooTest
GrooTest 是主要用于功能测试的库集合。它提供了数据库测试、Web 测试和页面对象的基类。它还提供了测试的固定配置管理。
要求
- GrooTest 仅支持 PHP 5.3 及以上版本。
- PHPUnit 3.7 和 uip
- PHPUnit DBUnit 扩展
安装
composer require naldz/GrooTest
配置
GrooTest 从 $_ENV 变量读取配置数据。应该提供一个前缀变量,GrooTest 将以此为基础命名配置变量。最佳方式是通过 phpunit.xml 配置文件定义这些环境变量。
示例
<php>
<env name="GROOTEST_CONFIG_PREFIX" value="TEST_CONFIG_" />
<env name="TEST_CONFIG_SELENIUM_HOST" value="https://:4444/wd/hub" />
<env name="TEST_CONFIG_DSN" value="sqlite:/path/db.sqlite" />
</php>
以上配置示例中,GrooTest 将使用 'TEST_CONFIG_' 文本作为所有测试配置数据的前缀。将读取并保存为 SELENIUM_HOST 配置数据的 'TEST_CONFIG_SELENIUM_HOST' 环境变量,其值为 'https://:4444/wd/hub',并将 TEST_CONFIG_DSN 作为 DSN 的值,值为 'sqlite:/path/db.sqlite'。配置数据现在如下所示
array(
"SELENIUM_HOST" => "https://:4444/wd/hub",
"DSN" => "sqlite:/path/db.sqlite"
)
此配置映射被保存到一个 Configuration 对象(Naldz\GrooTest\Config\Configuration)中,它是 WebTestCase 类的一个受保护属性(config)。
在 bootstrap 文件中实例化 Configuration 对象并将其分配给 "GROOTEST_CONFIG" 环境变量也很重要。
use Naldz\GrooTest\Config\ConfigurationManager;
use Naldz\GrooTest\Config\Configuration;
$configManager = new ConfigurationManager();
$configData = $configManager->getConfigurationData();
$_ENV['GROOTEST_CONFIG'] = new Configuration($configData);
测试用例
始终创建一个 TestCase 类作为您项目的基础测试用例是一个好主意。此 TestCase 类应从 WebTestCase(Naldz\GrooTest\Tests\TestCase\WebTestCase)类扩展,该类是 DatabaseTestCase(Naldz\GrooTest\Tests\TestCase\DatabaseTestCase)类的子类。DatabaseTestCase 也是 DBUnit PHPUnit 扩展提供的抽象类 PHPUnit_Extensions_Database_TestCase 的子类。类的层次结构如下所示
PHPUnit_Extensions_Database_TestCase
|
|
-- DatabaseTestCase \\ Responsible for fixture loading
|
|
-- WebTestCase \\ Responsible for defining objects related to Selenium
|
|
-- ProjectTestCase \\ Should implement the abstract method 'getConnection' and definition of fixture sets