Go Gonic单元测试部署问题

Go Gonic单元测试部署问题,go,heroku,digital-ocean,go-gin,Go,Heroku,Digital Ocean,Go Gin,我有一个使用Gin框架构建的GoAPI 阅读测试部分的文档,我尝试实现类似的功能: 梅因,加油 package main import ( "mes/routes" "github.com/gin-gonic/gin" ) func setupMainRoutes(engine *gin.Engine) { engine.GET("/mesg/:language/services", routes.AllS

我有一个使用Gin框架构建的GoAPI

阅读测试部分的文档,我尝试实现类似的功能:

梅因,加油

package main

import (
    "mes/routes"

    "github.com/gin-gonic/gin"
)

func setupMainRoutes(engine *gin.Engine) {
    engine.GET("/mesg/:language/services", routes.AllServices)
    engine.GET("/mesg/:language/service/:id", routes.OneService)
    engine.GET("/mesg/:language/services/search", routes.SearchService)
}

func setupErrorRoutes(engine *gin.Engine) {
    engine.NoRoute(routes.Error404Handler)
}

func setupServer() *gin.Engine {
    // Gin Mode
    gin.SetMode(gin.ReleaseMode)

    // Creates the Gin Engine
    engine := gin.New()

    // Setup the API Routes
    setupMainRoutes(engine)

    // Setup Error Routes
    setupErrorRoutes(engine)

    // Return engine
    return engine
}

func main() {
    // Run the engine
    setupServer().Run()
}
main_test.go

package main

import (
    "net/http"
    "net/http/httptest"
    "testing"

    "github.com/stretchr/testify/assert"
)

/************** Error Handling Tests **************/
func TestPing404Errors1Of3(t *testing.T) {
    router := setupServer()

    w := httptest.NewRecorder()
    req, _ := http.NewRequest("GET", "/", nil)
    router.ServeHTTP(w, req)

    assert.Equal(t, 404, w.Code)
}
因为我必须使用相同的包main来访问setupServer()函数,所以在将API部署到digital ocean时遇到了问题。构建失败了。如果我将包名更改为另一个,它将成功部署,但单元测试将不会运行

我希望能够部署我的应用程序,并保持我的单元测试

数字海洋只是说“构建失败”

我在Heroku上部署时遇到了同样的问题,但是我可以通过创建一个.slugignore并将测试文件放在其中来缓解这个问题,这样Heroku就可以忽略这些

有人能解决这个问题吗