Skip to content
This repository has been archived by the owner on Nov 26, 2020. It is now read-only.

Commit

Permalink
Change tests to allow execution inside a docker container
Browse files Browse the repository at this point in the history
  • Loading branch information
farshidtz committed Jan 22, 2020
1 parent acded34 commit 61f7010
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 10 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,16 @@ go build -v code.linksmart.eu/dt/deployment-tool/agent

## Development
### Run tests
Locally:
```bash
go test ./tests -v -failfast
```
In a docker container:
```bash
docker network create test-network
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):$(pwd) -w $(pwd) --network=test-network -e EXTERNAL-NETWORK=test-network golang:1.12 go test ./tests -v -failfast
docker network remove test-network
```

### Dependencies
* [ZeroMQ v4.x.x](http://zeromq.org/intro:get-the-software).
Expand Down
28 changes: 18 additions & 10 deletions tests/deploy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,26 @@ import (
// bug: travis starts before bamboo build new image

const (
userDefinedNetwork = "test-network"
envExternalNetwork = "EXTERNAL-NETWORK"
// elastic
elasticImage = "elasticsearch:6.6.1"
elasticName = "test-elastic"
elasticPort = "9200"
elasticEndpoint = "http://" + elasticName + ":" + elasticPort
// manager
managerImage = "linksmart/deployment-manager"
managerName = "test-manager"
managerPort = "8080"
managerEndpoint = "http://" + managerName + ":" + managerPort
managerExposedEndpoint = "http://localhost:" + managerPort
managerImage = "linksmart/deployment-manager"
managerName = "test-manager"
managerPort = "8080"
managerEndpoint = "http://" + managerName + ":" + managerPort
// agent
agentImage = "linksmart/deployment-agent"
agentName = "test-agent"
)

var (
userDefinedNetwork = "test-network" // may be overridden with env var
managerExposedEndpoint = "http://localhost:" + managerPort

testDir string
containers map[string]string // id: name
)
Expand Down Expand Up @@ -80,10 +82,16 @@ func TestDeploy(t *testing.T) {
t.Fatal(err)
}

t.Run("create network", func(t *testing.T) {
tearDown := createNetwork(t, cli, ctx)
tearDownFuncs = append(tearDownFuncs, tearDown)
})
if os.Getenv(envExternalNetwork) == "" {
t.Run("create network", func(t *testing.T) {
tearDown := createNetwork(t, cli, ctx)
tearDownFuncs = append(tearDownFuncs, tearDown)
})
} else {
userDefinedNetwork = os.Getenv(envExternalNetwork)
managerExposedEndpoint = managerEndpoint
t.Logf("Using external network: %s", userDefinedNetwork)
}

t.Run("run elastic", func(t *testing.T) {
tearDown := runElastic(t, cli, ctx)
Expand Down

0 comments on commit 61f7010

Please sign in to comment.