現在のディレクトリ構造は次のようになります。
App
- Template
- foo.go
- foo.tmpl
- Model
- bar.go
- Another
- Directory
- baz.go
ファイルは、実行中にテンプレート ファイルを読み込むためにfoo.go
使用します。ParseFiles
init
import "text/template"
var qTemplate *template.Template
func init() {
qTemplate = template.Must(template.New("temp").ParseFiles("foo.tmpl"))
}
...
期待どおりに機能するための単体テストfoo.go
。bar.go
しかし、私は今、とbaz.go
の単体テストを実行foo.go
しようとしていますfoo.tmpl
。
/App/Model$ go test
panic: open foo.tmpl: no such file or directory
/App/Another/Directory$ go test
panic: open foo.tmpl: no such file or directory
テンプレート名を相対ディレクトリ (「./foo.tmpl」)、完全なディレクトリ (「~/go/src/github.com/App/Template/foo.tmpl」)、App 相対として指定しようとしました。ディレクトリ(「/App/Template/foo.tmpl」)などがありますが、どちらの場合も機能しないようです。単体テストは、どちらbar.go
かbaz.go
(または両方) で失敗します。
ParseFiles
どのディレクトリから呼び出すかに関係なく、常にテンプレート ファイルを見つけることができるようにするには、テンプレート ファイルをどこに配置し、どのように呼び出す必要がありますgo test
か?