如何修复此导入?

时间:2018-09-28 15:39:35

标签: go

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
}

1 个答案:

答案 0 :(得分:3)

使用结构<head> <script type="text/javascript" src="cordova.js"></script> .... 不需要导入main。您只需将App的包更改为main_test,就可以使用该结构,就像下面我简单地传递main文件一样。

main_test

这是我从执行测试中得到的结果:

package main

import (
    "os"
    "testing"
)

func TestMain(m *testing.M) {
    a := 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)
}