Ich bin neu bei Travis und Go. Ich habe einen Test für einen https-Server und es läuft gut mit ich go test -v ./...
auf meinem lokalen Computer laufen, aber es wird die meiste Zeit auf Travis aufgrund einer getsocketopt: connection refused
Fehler beim Versuch, eine Verbindung mit dem Server. Es sollte auf https://localhost:8081
hören. Gibt es etwas in meinem .travis.yml
Ich kann tun, um dies zu verhindern? HierTravis CI schlägt fehl beim Versuch, Golang HTTP Server zu testen
ist mein .travis.yml
language: go
go:
- 1.6
- tip
matrix:
allow_failures:
- go: tip
before_install:
- go get -v github.com/golang/lint/golint
install:
- go get -v -d -t ./...
Hier ist mein Server Erstellungscode:
func (webserver *WebServer) Start(keyLocation string, certLocation string) <-chan error {
errors := make(chan error, 1)
go func() {
defer close(errors)
errors <- http.ListenAndServeTLS(fmt.Sprintf(":%v", webserver.config.WebServerPort), certLocation, keyLocation, nil)
}()
return errors
}
Und der Client-Code:
func createHTTPClient(t *testing.T) *http.Client {
t.Log("Creating a test client...")
tr := &http.Transport {
TLSClientConfig: &tls.Config {InsecureSkipVerify: true},
}
t.Log("Created a test client")
return &http.Client {Transport: tr}
}
Musterbestellung mit Client
request, _ := http.NewRequest(httpmethod, fmt.Sprintf("https://localhost:%d/token", port), nil)
client.Do(request)
Beispiel den Server in einem Test
errors := server.Start(testKeyLocation, testCertLocation)
//Handle errors from server
go func() {
select {
case err := <-errors:
if err != nil {
t.Fatalf("Error with server: %s", err.Error())
}
}
}()
Überprüfen Sie den Fehler, wenn Sie versuchen, Ihren Server zu starten? – JimB
Ja, es ist festgelegt, dass der Test bei einem Fehler fehlschlägt, der durch den Befehl go 'http.ListenAndServeTLS' erzeugt wurde. Obwohl der Fehler auftritt, wenn ich einen Testclient erstelle, um zu versuchen, eine Verbindung mit dem Server herzustellen. – cphelps
Sie müssen zuerst zeigen, wie Sie den Server und den Client erstellen. Das hat nicht unbedingt etwas mit Travis zu tun. – JimB