PHPackages                             silverstripe/frameworktest - 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. silverstripe/frameworktest

ActiveSilverstripe-vendormodule[Testing &amp; Quality](/categories/testing)

silverstripe/frameworktest
==========================

Aids core and module developers in testing their code against a set of sample data and behaviour.

0.4.15(2y ago)17304.6k↓28.4%13[5 PRs](https://github.com/silverstripe/silverstripe-frameworktest/pulls)20BSD-3-ClausePHPPHP ^7.3 || ^8.0CI passing

Since Mar 3Pushed 1mo ago13 watchersCompare

[ Source](https://github.com/silverstripe/silverstripe-frameworktest)[ Packagist](https://packagist.org/packages/silverstripe/frameworktest)[ RSS](/packages/silverstripe-frameworktest/feed)WikiDiscussions 2 Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (30)Used By (20)

Framework Test Module
=====================

[](#framework-test-module)

Introduction
------------

[](#introduction)

Aids core and module developers in testing their code against a set of sample data and behaviour.

- Shows all core form fields, including their disabled and readonly state
- Shows sample GridField instance including data
- Creates sample members (to efficiently test SecurityAdmin)
- Creates a sample ModelAdmin instance (available at `admin/test`)
- (Optional) Three-step process for the [multiform](http://www.silverstripe.org/multi-form-module/) module
- (Optional) Sample page for the [tagfield](http://www.silverstripe.org/tag-field-module/) module
- (Optional) Sample page for the [recaptcha](http://www.silverstripe.org/recaptcha-module/) module

Usage
-----

[](#usage)

Simply running `sake db:build` will take care of most sample data setup.

In order to use any of the optional test behaviour targeted at modules, install the module and remove the `_manifest_exclude` file from the relevant folder. For example, to test the tagfield module, remove the `frameworktest/code/tagfield/_manifest_exclude` file.

More sample data
----------------

[](#more-sample-data)

The module creates some default pages for different CMS behaviours. The CMS is intended to be perform well with a couple of thousand pages. If you want to test the CMS behaviour for a large and nested tree, the module includes a simple generator task: `sake tasks:FTPageMakerTask`. It will create 3^5 pages by default, so takes a while to run through.

Configuring the amount of data
------------------------------

[](#configuring-the-amount-of-data)

Both `FTPageMagerTask` and `FTFileMakerTask` allow the amount of generated content to be configured. To do this, pass a comma-seprarated list of integers representing the amount of records to create at each depth.

`$ vendor/bin/sake tasks:FTPageMakerTask --pageCounts=10,200,5,5`

`$ vendor/bin/sake tasks:FTFileMakerTask --fileCounts=5,300,55,5 --folderCounts=1,5,5,5`

Guaranteed unique images
------------------------

[](#guaranteed-unique-images)

The `FTFileMakerTask` will randomly watermark each reference to your images by default. If you want to disable this, set the `uniqueImages` config variable to `false`.

Blocks
------

[](#blocks)

When [dnadesign/silverstripe-elemental](https://github.com/dnadesign/silverstripe-elemental)is installed, the `FTPageMakerTask` can also generate blocks within those pages automatically. It has a few hardcoded sample data structures for common block types, and randomly creates a number of blocks, as well as randomly choosing to publish them. Relies on files and images being available to add as sample data.

Additional setup:

```
composer require dnadesign/silverstripe-elemental
composer require silverstripe/elemental-bannerblock
composer require silverstripe/elemental-fileblock

```

Usage:

```
# Generate some sample files to associate with blocks
sake tasks:FTFileMakerTask
sake tasks:FTPageMakerTask withBlocks=true

```

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

[](#requirements)

The module is intended to run against the latest core codebase, but also includes branches matching earlier core releases for backwards compatibility.

Related
-------

[](#related)

- [zframeworktest\_dbswitcher](https://github.com/silverstripe-labs/zframeworktest_dbswitcher) module - adds capabilities to switch the database by a query parameter for testing purposes

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance58

Moderate activity, may be stable

Popularity45

Moderate usage in the ecosystem

Community42

Growing community involvement

Maturity62

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~103 days

Recently: every ~222 days

Total

22

Last Release

91d ago

Major Versions

0.4.x-dev → 1.x-dev2025-08-25

1.x-dev → 2.x-dev2026-02-17

PHP version history (4 changes)0.4.6PHP ^7.3

0.4.8PHP ^7.3 || ^8.0

1.x-devPHP ^8.1

2.x-devPHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/654636?v=4)[Aaron Carlino](/maintainers/unclecheese)[@unclecheese](https://github.com/unclecheese)

![](https://www.gravatar.com/avatar/b0cba8b534e20e6ab4fff555a97b237a18436ebca1446fc0b29c8a8b504038b9?d=identicon)[GuySartorelli](/maintainers/GuySartorelli)

![](https://avatars.githubusercontent.com/u/111025?v=4)[Ingo Schommer](/maintainers/chillu)[@chillu](https://github.com/chillu)

![](https://www.gravatar.com/avatar/a25bc04c5720a36869d5a39c6449dde7eb43e19b7c8e666d5f632d6a9ab440b1?d=identicon)[emteknetnz](/maintainers/emteknetnz)

![](https://www.gravatar.com/avatar/afbb3dcc9ef29c1a6eedd6addcae5fce9ab1271915a85a4c349301b71237368d?d=identicon)[silverstripe-machine01](/maintainers/silverstripe-machine01)

![](https://www.gravatar.com/avatar/be6648e60fbab6f70bfc34dd8c14259562d28a47510a934ea9c01fe98633f3c2?d=identicon)[sminnee](/maintainers/sminnee)

![](https://avatars.githubusercontent.com/u/1168676?v=4)[Maxime Rainville](/maintainers/maxime-rainville)[@maxime-rainville](https://github.com/maxime-rainville)

---

Top Contributors

[![chillu](https://avatars.githubusercontent.com/u/111025?v=4)](https://github.com/chillu "chillu (127 commits)")[![GuySartorelli](https://avatars.githubusercontent.com/u/36352093?v=4)](https://github.com/GuySartorelli "GuySartorelli (105 commits)")[![emteknetnz](https://avatars.githubusercontent.com/u/4809037?v=4)](https://github.com/emteknetnz "emteknetnz (74 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (52 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (19 commits)")[![sabina-talipova](https://avatars.githubusercontent.com/u/87288324?v=4)](https://github.com/sabina-talipova "sabina-talipova (9 commits)")[![dhensby](https://avatars.githubusercontent.com/u/563596?v=4)](https://github.com/dhensby "dhensby (8 commits)")[![mandrew](https://avatars.githubusercontent.com/u/343938?v=4)](https://github.com/mandrew "mandrew (7 commits)")[![normann](https://avatars.githubusercontent.com/u/556224?v=4)](https://github.com/normann "normann (5 commits)")[![ScopeyNZ](https://avatars.githubusercontent.com/u/3260989?v=4)](https://github.com/ScopeyNZ "ScopeyNZ (4 commits)")[![dnsl48](https://avatars.githubusercontent.com/u/9313746?v=4)](https://github.com/dnsl48 "dnsl48 (4 commits)")[![flamerohr](https://avatars.githubusercontent.com/u/1064889?v=4)](https://github.com/flamerohr "flamerohr (4 commits)")[![robbieaverill](https://avatars.githubusercontent.com/u/5170590?v=4)](https://github.com/robbieaverill "robbieaverill (3 commits)")[![clarkepaul](https://avatars.githubusercontent.com/u/555033?v=4)](https://github.com/clarkepaul "clarkepaul (2 commits)")[![simonwelsh](https://avatars.githubusercontent.com/u/125915?v=4)](https://github.com/simonwelsh "simonwelsh (2 commits)")[![halkyon](https://avatars.githubusercontent.com/u/138450?v=4)](https://github.com/halkyon "halkyon (1 commits)")[![wilr](https://avatars.githubusercontent.com/u/101629?v=4)](https://github.com/wilr "wilr (1 commits)")[![sminnee](https://avatars.githubusercontent.com/u/59968?v=4)](https://github.com/sminnee "sminnee (1 commits)")[![vikas-srivastava](https://avatars.githubusercontent.com/u/1092931?v=4)](https://github.com/vikas-srivastava "vikas-srivastava (1 commits)")[![maxime-rainville](https://avatars.githubusercontent.com/u/1168676?v=4)](https://github.com/maxime-rainville "maxime-rainville (1 commits)")

---

Tags

hacktoberfesttestingsilverstripeframeworktest

### Embed Badge

![Health badge](/badges/silverstripe-frameworktest/health.svg)

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

###  Alternatives

[magento/magento2-functional-testing-framework

Magento2 Functional Testing Framework

15511.5M30](/packages/magento-magento2-functional-testing-framework)[imbo/behat-api-extension

API extension for Behat

1082.5M9](/packages/imbo-behat-api-extension)[silverleague/ideannotator

Generate PHP DocBlock annotations for DataObject and DataExtension databasefields and relation methods

4768.0k43](/packages/silverleague-ideannotator)[unclecheese/mock-dataobjects

Allows DataObjects to self-populate intelligently using fake data

183.7k](/packages/unclecheese-mock-dataobjects)[sheadawson/silverstripe-userswitcher

During testing, allows Admins to quickly switch to act as a different user in the system

164.6k](/packages/sheadawson-silverstripe-userswitcher)

PHPackages © 2026

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