我当前的目录结构如下所示:
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
?