Integration tests live in integration/<platform>/<test-name>/ and use
Ginkgo v2 + Gomega.
- Create the directory
integration/<platform>/<test-name>/. - Define the topology in
topology.go(viaintegration.Generate()). - Implement the test logic in
<test-name>.go. - Add the Ginkgo suite entry point in
<test-name>_test.go. - Register the target in
INTEGRATION_TARGETSin theMakefile.
opts := &integration.Opts{
CommType: fsc.LibP2P, // or fsc.WebSocket
TLSEnabled: true,
ReplicationOpts: &integration.ReplicationOptions{
ReplicationFactors: map[string]int{"node": 3},
SQLConfigs: map[string]*postgres.ContainerConfig{ /* ... */ },
},
}integration.Infrastructure— network lifecycle management.integration.TestSuite— base suite with setup/teardown.StartPort()— dynamic port allocation to avoid collisions.
make list-integration-tests
make integration-tests-fabric-iou # a single target
make integration-tests # all targets
GINKGO_TEST_OPTS="--focus='IOU Life Cycle'" make integration-tests-fabric-iouPrerequisites (Fabric binaries, Docker images) are covered in
docs/dev/development.md.