PHPackages                             tzepart/test-separator - 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. tzepart/test-separator

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

tzepart/test-separator
======================

Project for separating of tests

4.1.0(5y ago)02[1 issues](https://github.com/TzepART/tests-separator/issues)MITPHPPHP &gt;=7.1CI failing

Since Dec 17Pushed 5y ago1 watchersCompare

[ Source](https://github.com/TzepART/tests-separator)[ Packagist](https://packagist.org/packages/tzepart/test-separator)[ Docs](https://github.com/TzepART/test-separator.git)[ RSS](/packages/tzepart-test-separator/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (7)Versions (31)Used By (0)

Test Group Separator
====================

[](#test-group-separator)

Packagist -

[Версия на русском](README-RUS.md)

Description:
------------

[](#description)

It is possible to divide the tests into groups based on:

1. report.xml of [Codeception](https://codeception.com/) library
2. The size of the test methods (used if the first 2 do not work)

In addition, the separation depth has 3 levels:

1. Separation of directories
2. Separation of files (classes)
3. Separation by separate methods Than smaller the division unit (method &lt; class &lt; directory) that more optimized the division result.

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

[](#installation)

```
composer require tzepart/test-separator

```

### Configuration

[](#configuration)

Add configuration file `config/test_separator.yml`, which contents:

```
test_separator:
  separating-strategy: 'default-groups'
  use-default-separating-strategy: false
  codeception-reports-directory: '/path/to/file/with/codeception/reports/'
  tests-directory: '/path/to/project/tests/'
  result-path: '/path/to/project/file/groups/'
  level: 'method'
  test-suites-directories:
      - 'list'
      - 'sub-directories'
      - 'with'
      - 'test-suites'
  default-separating-strategies:
    - 'method-size'
    - 'default-groups'
  default-groups-directory: '/path/to/directory/with/defaults/groups/'
```

Parameter **separating-strategy** can be one of these values:

- codeception-report
- method-size

If parameter **use-default-separating-strategy: true** than, if we can't use **codeception-report** strategy we'll try use default strategies (**method-size** or **default-groups**)

Parameter **tests-directory** - path to directory where is yours tests

Parameter **result-path** - path to directory where final groups files will be

Parameter **level** can be one of these values:

- directory
- class
- method

Manual running
--------------

[](#manual-running)

```
./vendor/bin/separate-tests separate 6

```

Where "6" - groups count

For the convenience of debugging, you can overwrite some configuration parameters when running the command, namely:

- codeception-reports-directory
- result-path
- separating-strategy

Example:

```
./separate-tests separate 5 --result-path=/data/tests-separator-data/groups_2/ --codeception-reports-directory=/data/tests-separator-data/reports_2/

```

Develop section
---------------

[](#develop-section)

Run test

```
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests

```

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

Every ~19 days

Recently: every ~13 days

Total

23

Last Release

1971d ago

Major Versions

0.1.1 → 1.0.02020-06-04

1.0.0 → 2.0.12020-06-08

2.1.5 → 3.0.02020-10-09

3.1.0 → 4.0.02020-12-16

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10636031?v=4)[Tsepkov Artem](/maintainers/tzepart)[@tzepart](https://github.com/tzepart)

---

Top Contributors

[![tzepart](https://avatars.githubusercontent.com/u/10636031?v=4)](https://github.com/tzepart "tzepart (61 commits)")

---

Tags

bamboocodeceptionphpcodeceptiontestsalluretests groups

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/tzepart-test-separator/health.svg)

```
[![Health](https://phpackages.com/badges/tzepart-test-separator/health.svg)](https://phpackages.com/packages/tzepart-test-separator)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.8k543.8M20.1k](/packages/laravel-framework)[infection/infection

Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.

2.2k28.9M2.4k](/packages/infection-infection)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21866.0M1.7k](/packages/drupal-core)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6942.5M421](/packages/drupal-core-recommended)[testo/testo

A lightweight PHP testing framework.

1959.3k55](/packages/testo-testo)

PHPackages © 2026

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