main_test.go
package main_test
import (
"log"
"os"
"testing"
"."
)
func TestMain(m *testing.M) {
a = main.App{}
a.Init(
os.Getenv("TEST_DB_USERNAME"),
os.Getenv("TEST_DB_PASSWORD"),
os.Getenv("TEST_DB_NAME"))
ensureTableExists()
code := m.Run()
clearTable()
os.Exit(code)
}
app.go
package main
import (
"database/sql"
"fmt"
"log"
"github.com/gorilla/mux"
_ "github.com/lib/pq"
)
type App struct {
Router *mux.Router
DB *sql.DB
}
func (a *App) Init(user, password, dbname string) {
connection := fmt.Sprintf("user=%s password=%s dbname=%s", user, password, dbname)
var err error
a.DB, err = sql.Open("postgres", connection)
if err != nil {
log.Fatal(err)
}
a.Router = mux.NewRouter()
}
func (a *App) Run(addr string) { }
main.go
package main
import "os"
func main() {
a := App{}
a.Init(
os.Getenv("APP_DB_USERNAME"),
os.Getenv("APP_DB_PASSWORD"),
os.Getenv("APP_DB_NAME"))
a.Run(":8080")
}
Привет всем, я новичок в Golang и работаюс некоторыми учебниками.В учебнике они используют оператор импорта "."который бросает ошибку для меня.Точная ошибка - «неканонический путь импорта».Я попытался использовать относительный путь и полный путь для доступа к основному файлу в моем проекте, но когда я использую что-либо кроме "."var a.main.App выдает ошибку о том, что main является неразрешенным типом.Мой $ GOPATH установлен в c: / users / me / go / src, мой проект находится в папке src.Я не совсем уверен, что неправильно мой код в данный момент.Если это что-то очевидно, я прошу прощения.
Вот что я пытаюсь импортировать.Это живет в файле с именем app.go, который вызывается через main.go
type App struct {
Router *mux.Router
DB *sql.DB
}