PHPackages                             naldz/grootest - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. naldz/grootest

ActiveLibrary[Testing &amp; Quality](/categories/testing)

naldz/grootest
==============

GrooTest is collection of libraries primarily used for functional testing

v0.1.2(11y ago)012MITPHPPHP &gt;=5.3.3

Since Dec 15Pushed 9y ago1 watchersCompare

[ Source](https://github.com/naldz/grootest)[ Packagist](https://packagist.org/packages/naldz/grootest)[ RSS](/packages/naldz-grootest/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

README
======

[](#readme)

What is GrooTest
----------------

[](#what-is-grootest)

GrooTest is collection of libraries primarily used for functional testing. It provides base classes for database tests, web tests and page objects. It also provides fixture management for tests.

Requirements
------------

[](#requirements)

- GrooTest is only supported on PHP 5.3 and up.
- PHPUnit 3.7 and uip
- PHPUnit DBUnit Extension

Installation
------------

[](#installation)

composer require naldz/GrooTest

Configuration
-------------

[](#configuration)

GrooTest reads configuration data from the $\_ENV variable. A prefix variable in which GrooTest will based the name of the configuration variables should be provided. The best way to defined these environment variables is through a phpunit.xml config file.

Example:

```

```

With the configuration example above, GrooTest will use the 'TEST\_CONFIG\_' text as a prefix for all test configuration data. The 'TEST\_CONFIG\_SELENIUM\_HOST' environment variable will be read and saved as SELENIUM\_HOST config data with a value of '' and the TEST\_CONFIG\_DSN as DSN with value of 'sqlite:/path/db.sqlite'. The configuration data now looks like this:

```
array(
    "SELENIUM_HOST" => "http://localhost:4444/wd/hub",
    "DSN" => "sqlite:/path/db.sqlite"
)

```

This configuration map is saved into a Configuration object (Naldz\\GrooTest\\Config\\Configuration) which is a protected property (config) of the WebTestCase class.

It is also important to instantiate the Configuration object on the bootrap file and assign it to the "GROOTEST\_CONFIG" environment variable.

```
use Naldz\GrooTest\Config\ConfigurationManager;
use Naldz\GrooTest\Config\Configuration;

$configManager = new ConfigurationManager();
$configData = $configManager->getConfigurationData();
$_ENV['GROOTEST_CONFIG'] = new Configuration($configData);

```

Test Cases
----------

[](#test-cases)

It is always a good idea to create a TestCase class that will serve as a base test case of your project. This TestCase class should extend from the WebTestCase (Naldz\\GrooTest\\Tests\\TestCase\\WebTestCase) class which is a subclass of the DatabaseTestCase (Naldz\\GrooTest\\Tests\\TestCase\\DatabaseTestCase) class. The DatabaseTestCase is also a subclass of the PHPUnit\_Extensions\_Database\_TestCase which is an abstract class provided by the DBUnit PHPUnit extension. The hierarchy of classes is illustrated below:

```
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

```

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4217d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1872172a9be957cc8a8f4353d27a416f473801f6b329855b00ef2d8ddc54f334?d=identicon)[naldz](/maintainers/naldz)

---

Top Contributors

[![naldz](https://avatars.githubusercontent.com/u/2819058?v=4)](https://github.com/naldz "naldz (8 commits)")

---

Tags

functional-testing

### Embed Badge

![Health badge](/badges/naldz-grootest/health.svg)

```
[![Health](https://phpackages.com/badges/naldz-grootest/health.svg)](https://phpackages.com/packages/naldz-grootest)
```

###  Alternatives

[brianium/paratest

Parallel testing for PHP

2.5k136.1M984](/packages/brianium-paratest)[codeception/codeception

All-in-one PHP Testing Framework

4.9k90.2M3.2k](/packages/codeception-codeception)[drupal/core-dev

require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.

2022.6M341](/packages/drupal-core-dev)[webmozarts/strict-phpunit

Enables type-safe comparisons of objects in PHPUnit

30314.4k7](/packages/webmozarts-strict-phpunit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
