Skip to content

FHIR Frog

FHIR Frog Logo

FHIR Frog is an open-standard runner for FHIR TestScript and TestPlan resources. Ship tests inside your Implementation Guide — always in sync, same tests for every implementer.

Quick Start Why FHIR Frog?


Key Features

  • TestScript execution

    Full FHIR R4/R5 TestScript engine: operations, assertions, variables, fixtures, FHIRPath.

    TestScript guide

  • TestPlan support

    Organise scripts into suites with dependency ordering, recursive expansion and cycle detection.

    TestPlan guide

  • Tests ship with the IG

    TestScripts live alongside profiles in your FSH project — versioned, peer-reviewed, always current.

    Motivation

  • Multiple deployment modes

    JUnit 5 · Maven · Ant (IG Publisher) · CLI · programmatic API.

    Deployment

  • Concise test syntax (TSH)

    TestScript Shorthand cuts verbosity by 70–80%. * assert ServiceRequest.status = "active" instead of 7 lines of JSON.

    Architecture

  • Pre-warmed Docker bootstrap

    docker commit snapshots HAPI after IG load. Subsequent runs start in ~25 seconds instead of ~15 minutes.

    Ant task


Quick Example

TestScript: PatientCreate
Title: "Create a patient and verify"
Status: #draft

Setup:
  * operation create Patient from "patient.json" as created
  * assert response = created

Test: "Read the created patient"
  * variable patientId = Patient.id from created
  * operation read Patient/${patientId} as readResult
  * assert response = okay
  * assert Patient.id = "${patientId}"
@ExtendWith(FhirFrogExtension.class)
class PatientTest {

    @TestTemplate
    @TestScriptSource("fhir/patient-create.tsh")
    void patientCreate(FhirTestConfig config) { }
}
<fhirtest testScript="tests/patient-create.tsh"
          serverUrl="http://localhost:8080/fhir"
          reportDir="target/fhir-reports"/>

Architecture

Architecture Overview