diff --git a/service/service.go b/service/service.go
index <HASH>..<HASH> 100644
--- a/service/service.go
+++ b/service/service.go
@@ -22,6 +22,7 @@ type Service struct {
 	configs  map[string]*Config
 	commands map[string]*Command
 
+	started sync.WaitGroup
 	running sync.WaitGroup
 }
 
@@ -57,7 +58,9 @@ func loadEnv(m Module, env Environment) *Service {
 		modules:  []Module{},
 		configs:  map[string]*Config{},
 		commands: map[string]*Command{},
+		started:  sync.WaitGroup{},
 	}
+	svc.started.Add(1)
 	svc.load(m)
 	return svc
 }
diff --git a/service/start.go b/service/start.go
index <HASH>..<HASH> 100644
--- a/service/start.go
+++ b/service/start.go
@@ -20,6 +20,7 @@ func (s *Service) StartForTest() func() {
 		panic(err)
 	}
 	go s.start()
+	s.started.Wait()
 	return s.Stop
 }
 
@@ -34,6 +35,8 @@ func (s *Service) start() {
 			c.Start()
 		}
 	}
+	// mark as started
+	s.started.Done()
 
 	// mark process as running
 	s.running.Add(1)
StartForTest waits until the app is fully started.