테스트 파일에서 응용 프로그램 파일을 분할하려고합니다. 그것은이 같은 같습니다Martini 템플릿 및 테스트
main.go
views/
layouts/
layout.html
spec/
main_test.go
main.go
는 마티니 응용 프로그램을 만듭니다과 전망을 찾기 위해 Martini.render
말한다 : 나는 루트 폴더에서 go run
을 사용하고 때 모두가 정말 잘 작동
func CreateApplication() {
m := martini.Classic()
m.Use(render.Renderer(render.Options{
Directory: "views",
Layout: "layouts/layout",
Extensions: []string{".html"},
}))
}
을 . 그러나 spec/main_test.go
파일에서 CreateApplication()
함수를 사용하려고하면 실행 폴더 인 spec/views
에있는 뷰를 찾고 있습니다.
나는 절대 경로를 얻기 위해 runtime.Caller()
을 사용하려고 시도했지만, 바이너리를 컴파일 할 때 완전히 엉망진창이다.
제 질문은이 작업을 어떻게 수행 할 수 있을까요? 내가 어디서 전화했는지 상관없이 CreateApplication()
이 똑같이 작동하기를 바랍니다.
상대 경로 대신 절대 경로를 사용 하시겠습니까? –
"relative"대신 "absolute"라고 수정되었습니다. 실제로 절대 경로를 얻을 수 있고 작동한다면 코드를보고 싶을 것입니다. 'os.Getwd()'와'filepath.Join'을 사용할 수 없습니다. – Ronze
루트로 상대 경로가있는 문자열을 전달하는 결과가 발생했습니다. https://github.com/runemadsen/golang-rails-template에서 진행 상황을 따릅니다. – Ronze