X Tutup
The Wayback Machine - https://web.archive.org/web/20210116060752/https://github.com/activecm/DBTest
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

DBTest: Managed Integration Testing Dependencies via Docker for Go

DBTest Allows You to Test Against a Real Database

Using the Docker API, your Go program can manage its own testing dependencies.

This is especially useful when writing integration tests (or when it's simply impossible to mock out a dependency).

MongoDB

//Create a new Loader. This may error is Docker is not accessible
l, err := docker.NewLoader()
//Create a new MongoDB container using the loader
mongo, err := NewMongoDBContainer(context.Background(), l)
//Obtain an mgo.Session to contact MongoDB
ssn, err := mongo.NewSession()
//Do something with the Session
err = ssn.Ping()
//Stop and remove the MongoDB container
err = l.StopService(context.Background(), mongo)
_ = err

Arbitrary Ephemeral Docker Containers

//Create a new Loader. This may error is Docker is not accessible
loader, err := docker.NewLoader()
helloWorldSpec := docker.ServiceSpecification{
  FullyQualifiedImageName: "library/hello-world",
  ContainerConfig: &container.Config{
    Image: "hello-world",
  },
}
service, err := loader.StartService(context.Background(), &helloWorldSpec)
//no StopService call since "hello-world" exits on its own
_ = err

Docker API Version

The Go Docker API is notoriously hard to vendor due to the Moby rename.

This API is based off of commit 21291e5aefe1f13f3208d57bcc4183848c492bd1 on Moby/Moby which was committed to master on June 6th, 2018.

About

Managed Integration Testing Dependencies via Docker for Go

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.
X Tutup