https://github.com/guidewire-oss/fern-reporter
A ginkgo test reporter extension for storing test run information and also for reporting html pages
https://github.com/guidewire-oss/fern-reporter
bdd fern ginkgo ginkgo-reporter golang hacktoberfest html-reporter reporter test-visualization testing testing-reporter testing-tool testing-tools
Last synced: 16 days ago
JSON representation
A ginkgo test reporter extension for storing test run information and also for reporting html pages
- Host: GitHub
- URL: https://github.com/guidewire-oss/fern-reporter
- Owner: guidewire-oss
- License: apache-2.0
- Created: 2023-10-31T01:53:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-10T03:42:20.000Z (17 days ago)
- Last Synced: 2025-06-10T04:28:58.404Z (17 days ago)
- Topics: bdd, fern, ginkgo, ginkgo-reporter, golang, hacktoberfest, html-reporter, reporter, test-visualization, testing, testing-reporter, testing-tool, testing-tools
- Language: Go
- Homepage:
- Size: 37.2 MB
- Stars: 25
- Watchers: 9
- Forks: 17
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README

## Introduction
Welcome to the Fern Project, an innovative open-source solution designed to enhance Ginkgo test reports. This project is focused on capturing, storing, and analyzing test data to provide insights into test performance and trends. The Fern Project is ideal for teams using Ginkgo, a popular BDD-style Go testing framework, offering a comprehensive overview of test executions and performance metrics.
Key Features:
1. **Historical Test Data Tracking**: Stores detailed records of tests run against various projects, providing a historical view of testing efforts.
2. **Latency and Performance Metrics**: Captures the time taken for each "It" block in Ginkgo tests, aiding in identifying performance bottlenecks.
3. **Data-Driven Analytics (To be implemented)**: Future feature to leverage data for analytics, including identification of frequently failing tests.
4. **Coverage and Test Evolution Analysis (To be implemented)**: Planned feature to offer insights into test coverage and the evolution of tests over time.
5. **Authorized Access to Test Reports (To be implemented)**: Upcoming feature to ensure secure access to test reports.## Local Development
To start developing locally first run the below docker compose command:
```bash
docker-compose up -d
```
Then install necessary modules:
```bash
go mod tidy
```
Now run the server with:
```bash
go run main.go
```GraphiQL should be available at http://localhost:8080.
## Installation and Setup
Fern is a Golang Gin-based API that connects to a PostgreSQL database. It is designed to store metadata about Ginkgo test suites and has two main components:
1. **API Server**: A central server that stores test metadata. It needs to be deployed independently.
2. **Client Library**: Integrated into Ginkgo test suites to send test data to the API server.### Setting Up the API Server
#### Prerequisites
- Golang environment.
- Docker for running the PostgreSQL database.
- Install gox for building the binary
```bash
go install github.com/mitchellh/gox@latest
```#### Deployment
1. **Clone the Fern Repository**: Clone the repository to your local machine.
```bash
git clone [email protected]:Guidewire/fern-reporter.git
```
2. **Start the API Server**: Navigate to the project directory and start the server.
```bash
cd fern-reporter
make docker-run-local
```### Integrating the Client into Ginkgo Test Suites
* Refer the client repository to integrate the client to Ginkgo Test Suites:
https://github.com/Guidewire/fern-ginkgo-client
* After adding the client, run your Ginkgo tests normally.### Accessing Test Reports using embedded HTML view
- View reports at `http://[your-api-url]/reports/testruns/`.
- If using `make docker-run-local`, reports are available at `http://localhost:8080/reports/testruns/`.### Accessing Test Reports using Fern-UI
To view the test reports using the React-based Fern-UI frontend, follow these steps:
- Follow the instructions in the [Fern-UI repository](https://github.com/Guidewire/fern-ui) to set up and run the frontend application.
- Once the Fern-UI is running, access the dashboard at `http://[frontend-api-url]/testruns` to view the test reports.- View reports at `http://[your-api-url]/reports/testruns`.
- If using `make docker-run-local`, reports are available at `http://localhost:8080/reports/testruns`.### Accessing Test Reports using the API
Reports are also available as JSON at `http://[host-url]/api/reports/testruns`.## gRpc Support
Start the server as below: The server will be started listening in port 50051
The gRpc server will be started along with the fern server- docker-compose up
The gRpc server listens on port 50051
The startup for gRpc is in : /grpcstart
The proto files are in : /grpcfiles### Additional Resources
- [Deploying fern reporter service in kubernetes using kubevela](docs/kubevela/README.md)
## 🤩 Thanks to all our Contributors
Thanks to everyone, that is supporting this project. We are thankful, for evey contribution, no matter its size!