Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

215 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fern Platform

Go Version License Go Report Card codecov CI Status

A unified test intelligence platform that transforms fragmented test data into actionable insights.

What is Fern Platform?

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.

Fern Platform Dashboard

Key Features

  • 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

Quick Start

Requirements

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

Installation

Choose your preferred installation method:

Option 1: Docker (Coming Soon)

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:latest

For now, please use Option 2 (Kubernetes deployment) or build from source.

Option 2: Kubernetes with OAuth (Full Features)

# 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-all

Access the platform at http://fern-platform.local:8080

Default credentials: admin@fern.com / test123

Basic Usage

  1. Manager creates a project in the Fern Platform UI
  2. Developers install a client library for their test framework:

Official Client Libraries

Build Your Own 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
  1. Configure with your project ID:
export FERN_PROJECT_ID=my-project
export FERN_URL=http://fern-platform.local:8080

Test 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
    }
  }
}

Documentation

Quick Links by Role

For UsersUI Features GuideWorkflowsUse Cases

For DevelopersIntegration GuideAPI ReferenceGraphQL

For DevOpsInstallationConfigurationTroubleshooting

For ContributorsArchitectureContributingRFCs

All Documentation

See complete documentation index or browse docs/ directly.

Use Cases

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.

Integration Examples

JavaScript/Jest

// jest.config.js
module.exports = {
  reporters: [
    'default',
    ['@guidewire/fern-jest-client', {
      url: process.env.FERN_URL,
      projectId: process.env.FERN_PROJECT_ID
    }]
  ]
};

Java/JUnit with Gradle

plugins {
  id 'com.guidewire.fern' version '1.0.0'
}

fern {
  url = System.getenv('FERN_URL')
  projectId = System.getenv('FERN_PROJECT_ID')
}

Go/Ginkgo

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.

Architecture

Fern Platform uses domain-driven design with a hexagonal architecture:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Web UI        │     │   REST API      │     │   GraphQL API   │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         └──────────────────────┬┴──────────────────────────┘
                                │
                    ┌───────────┴────────────┐
                    │   Business Domains     │
                    │  ┌─────┐ ┌─────────┐  │
                    │  │Tests│ │Analytics│  │
                    │  └─────┘ └─────────┘  │
                    └───────────┬────────────┘
                                │
                    ┌───────────┴────────────┐
                    │   Infrastructure       │
                    │  PostgreSQL + Redis    │
                    └────────────────────────┘

The Vision: Where We're Heading

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.

🚀 Coming Soon

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.

Project Status

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

Contributing

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

Creating Client Libraries

Building a client for your favorite test framework? Check our client development guide and join our growing ecosystem!

Community

License

Apache License 2.0 - see LICENSE for details.


About

Unified test intelligence platform with multi-format ingestion, real-time analytics, and AI-powered insights via LLM integration

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages