A unified test intelligence platform that transforms fragmented test data into actionable insights.
Fern Platform aggregates test results from any CI/CD pipeline and testing framework (Jest, pytest, JUnit, etc.) into a centralized dashboard. It automatically detects flaky tests, tracks performance trends, and provides the visibility engineering teams need to maintain healthy test suites.
Think of it as a specialized analytics platform for your tests - like Datadog or Grafana, but purpose-built for test intelligence. We're on a mission to make test failures predictable and preventable through AI-powered insights.
- Universal Test Aggregation - REST API accepts test results from any framework or CI/CD system
- Flaky Test Detection - Automatically identifies tests that pass/fail intermittently
- Performance Monitoring - Track test execution times and identify slow tests
- Interactive Visualizations - Treemap view shows test suite health at a glance
- Team-Based Access Control - OAuth/SSO with role-based permissions
- Rich Querying - GraphQL API for complex test data analysis
Choose based on your installation method:
For Docker:
- Docker Engine 20.10+
- PostgreSQL 14+ (external or containerized)
- Redis 6+ (external or containerized)
For Kubernetes deployment:
- Docker with buildx
- k3d (lightweight Kubernetes)
- kubectl
- Go 1.21+ (used by Makefile for architecture detection)
- Make
- 8GB RAM minimum
Choose your preferred installation method:
Docker images will be available after the v0.1.0 release:
- GitHub Container Registry:
ghcr.io/guidewire-oss/fern-platform:latest - Docker Hub:
docker.io/guidewireoss/fern-platform:latest
# Future usage (not yet available):
docker run -d \
--name fern-platform \
-p 8080:8080 \
-e DB_HOST=host.docker.internal \
-e DB_USER=postgres \
-e DB_PASSWORD=yourpassword \
-e DB_NAME=fern_platform \
-e REDIS_HOST=host.docker.internal \
ghcr.io/guidewire-oss/fern-platform:latestFor now, please use Option 2 (Kubernetes deployment) or build from source.
# Clone the repository
git clone https://github.com/guidewire-oss/fern-platform
cd fern-platform
# Add required hosts entries (for OAuth to work)
echo "127.0.0.1 fern-platform.local" | sudo tee -a /etc/hosts
echo "127.0.0.1 keycloak" | sudo tee -a /etc/hosts
# Deploy everything (takes ~15 minutes)
make deploy-allAccess the platform at http://fern-platform.local:8080
Default credentials: [email protected] / test123
- Manager creates a project in the Fern Platform UI
- Developers install a client library for their test framework:
- Go/Ginkgo: fern-ginkgo-client
- Java/JUnit: fern-junit-client and Gradle plugin
- JavaScript/Jest: fern-jest-client
Missing your framework? Create your own client library! See our client development guide to:
- Build clients for Python, Ruby, PHP, .NET, or any other language
- Integrate with pytest, RSpec, PHPUnit, NUnit, or any test framework
- Contribute back to the community
- Configure with your project ID:
export FERN_PROJECT_ID=my-project
export FERN_URL=http://fern-platform.local:8080Test results are automatically sent to Fern Platform!
View results in the dashboard or query via GraphQL:
query {
testRuns(projectId: "my-project", first: 10) {
runs {
id
status
duration
gitCommit
}
}
}For Users → UI Features Guide • Workflows • Use Cases
For Developers → Integration Guide • API Reference • GraphQL
For DevOps → Installation • Configuration • Troubleshooting
For Contributors → Architecture • Contributing • RFCs
See complete documentation index or browse docs/ directly.
Fern Platform helps engineering teams:
- Identify flaky tests that waste CI time and erode confidence
- Track test performance to find and fix slow tests
- Monitor test health across multiple projects and teams
- Debug failures with historical context and error patterns
See our use case guides for detailed examples.
// jest.config.js
module.exports = {
reporters: [
'default',
['@guidewire/fern-jest-client', {
url: process.env.FERN_URL,
projectId: process.env.FERN_PROJECT_ID
}]
]
};plugins {
id 'com.guidewire.fern' version '1.0.0'
}
fern {
url = System.getenv('FERN_URL')
projectId = System.getenv('FERN_PROJECT_ID')
}import "github.com/guidewire-oss/fern-ginkgo-client/reporter"
var _ = ginkgo.BeforeSuite(func() {
ginkgo.RunSpecs(t, "My Suite", reporter.NewFernReporter())
})See integration guide for more examples.
Fern Platform uses domain-driven design with a hexagonal architecture:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web UI │ │ REST API │ │ GraphQL API │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
└──────────────────────┬┴──────────────────────────┘
│
┌───────────┴────────────┐
│ Business Domains │
│ ┌─────┐ ┌─────────┐ │
│ │Tests│ │Analytics│ │
│ └─────┘ └─────────┘ │
└───────────┬────────────┘
│
┌───────────┴────────────┐
│ Infrastructure │
│ PostgreSQL + Redis │
└────────────────────────┘
While Fern Platform already provides powerful test analytics, we're building towards something bigger: an AI-powered test intelligence system that predicts failures before they happen.
AI-Powered Intelligence (In Development)
- Automatic root cause analysis for failures
- Predictive test failure detection
- Smart test selection for faster CI/CD
- Natural language queries: "Why did the auth tests fail last week?"
Enhanced Integrations (Q1 2025)
- Native plugins for Jest, pytest, Go, JUnit
- GitHub Actions & GitLab CI apps
- Slack/Teams notifications with insights
- JIRA auto-ticket creation for failures
Real-Time Features (Q2 2025)
- Live test execution monitoring
- WebSocket subscriptions for dashboards
- Streaming logs from CI/CD pipelines
See our RFCs for detailed technical proposals and join the discussion.
Fern Platform is under active development with core features stable and used in production.
Ready Now: Test aggregation • Flaky detection • Performance tracking • OAuth • REST/GraphQL APIs
In Progress: AI insights • Webhook integrations • Enhanced visualizations
Exploring: ML-based test optimization • Distributed tracing for tests
We welcome contributions! See CONTRIBUTING.md for guidelines.
Areas where we need help:
- Client libraries for new test frameworks (pytest, RSpec, PHPUnit, etc.)
- Test framework integrations
- UI/UX improvements
- Documentation
- Bug fixes
Building a client for your favorite test framework? Check our client development guide and join our growing ecosystem!
- GitHub Discussions - Ask questions and share ideas
- Issue Tracker - Report bugs or request features
Apache License 2.0 - see LICENSE for details.
