Go Gonic单元测试部署问题
我有一个使用Gin框架构建的GoAPI 阅读测试部分的文档,我尝试实现类似的功能: 梅因,加油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
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就可以忽略这些
有人能解决这个问题吗