Wie kann der Pfad der Vorlage für App Engine mit Go for Unit Testing angegeben werden?

Ich verwende das integrierte Vorlagenpaket mit Go on App Engine.

Ich habe einen Handler, der eine Vorlage für die Ausgabe rendert.

templates := []string{"templates/head.html", "templates/footer.html"}

func pageIndex(w http.ResponseWriter, r *http.Request) {
  tpls := append([]string{"templates/index.html"}, templates...)
  tpl := template.Must(template.ParseFiles(tpls...))
  err := tpl.ExecuteTemplate(w, "index", map[string]string{
    "Title": "Index Page",
  })

  if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
  }
}

Wenn ich den lokalen Entwicklungsserver betreibe, funktioniert dies einwandfrei.

Wenn ich den Komponententest zum Testen der Seite durchführe, kommt es in Panik und es wird folgende Meldung angezeigt:

panic: open templates / index.html: keine solche Datei oder Verzeichnis [wiederhergestellt]

Der Komponententest sieht wie folgt aus:

func TestPageIndex(t *testing.T) {
  inst, _ := aetest.NewInstance(nil)
  //ignoring the errors for brevity
  defer inst.Close()

  req, _ := inst.NewRequest("GET", "/", nil)
  resp := httptest.NewRecorder()
  pageIndex(resp, req)
}

rundsätzlich besteht das Problem darin, dass der Server für den Komponententest den Pfad der Vorlage nicht finden kann.

Wie kann ich den Pfad für die Vorlagendateien beim Ausführen des Tests angeben?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage