- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在测试 beego 的 http 自定义端点
package test
import (
"github.com/astaxie/beego"
. "github.com/smartystreets/goconvey/convey"
_ "golife-api-cons/routers"
"net/http"
"net/http/httptest"
"path/filepath"
"runtime"
"testing"
)
func init() {
_, file, _, _ := runtime.Caller(1)
apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".."+string(filepath.Separator))))
beego.TestBeegoInit(apppath)
}
// TestGet is a sample to run an endpoint test
func TestGet(t *testing.T) {
r, _ := http.NewRequest("GET", "/my/endpoint/fetches/data", nil)
w := httptest.NewRecorder()
beego.BeeApp.Handlers.ServeHTTP(w, r)
beego.Trace("testing", "TestGet", "Code[%d]\n%s", w.Code, w.Body.String())
Convey("Subject: Test Station Endpoint\n", t, func() {
Convey("Status Code Should Be 200", func() {
So(w.Code, ShouldEqual, 200)
})
Convey("The Result Should Not Be Empty", func() {
So(w.Body.Len(), ShouldBeGreaterThan, 0)
})
})
}
当我使用 go test -v
运行时,
我得到响应 dial tcp :0: getsockopt: connection refused
我正在使用在本地运行的 MariaDB,我已经使用 netstat -tulpn
验证我的数据库运行良好(如果我使用 postman 并且我的服务器正在运行,我会得到一个有效的响应)
一个奇怪的观察,在包含 _ "golife-api-cons/routers"行之后
我什至在测试运行之前就得到了这个错误
我的测试通过了响应 200 OK,但是没有任何数据作为对上述错误的响应
编辑
TestBeegoInit
函数使用的默认路径是/path/to/my/project/test
这不是所需的路径,所以我也尝试提供绝对路径,但我仍然无法连接数据库。
最佳答案
经过多次尝试,我开始知道 beego 在 beego/conf.go 中初始化它的名为 AppPath
的变量,例如 -
AppPath, _ = filepath.Abs(filepath.Dir(os.Args[0]))
当您运行测试时,您可以使用 go test -v
但结果 os.Args[0]
是文本可执行文件,它将是 /tmp/path/to/test 而不是 path/到/app/exe
因此,它找不到 config/app.conf,它位于您的应用程序路径中,其中包含数据库连接详细信息。beego/conf.go 中的负责行 -
appConfigPath = filepath.Join(AppPath, "conf", "app.conf")
这一切都发生在 beego 的 init
函数中,当你说
import (
"github.com/astaxie/beego"
_ "path/to/routers"
)
黑客对此是 -
创建一个带有 init 函数的新包/文件,看起来有 -
package common
import (
"os"
"strings"
)
func init() {
cwd := os.Getenv("PWD")
rootDir := strings.Split(cwd, "tests/")
os.Args[0] = rootDir[0] // path to you dir
}
在这里您正在更改 os.Args[0]
并分配您的目录路径
确保在 beego 之前导入它,所以现在导入看起来像
import (
_ "path/to/common"
"github.com/astaxie/beego"
_ "path/to/routers"
)
最后连接到数据库!
关于go - Beego - 端点测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36983078/
如这里建议的那样http://beego.me/docs/mvc/controller/config.md ,我为 MySQL 用户/密码添加参数,并在尝试访问它们时(例如通过使用 beego.App
如何使用beego上传多个文件? GetFile 方法仅返回第一个文件名。 html: 在 Controller 中: file, header, err := this.GetFile
1 介绍 Beego是一个开源的基于Golang的MVC框架,主要用于Golang Web开发。Beego可以用来快速开发API、Web、后端服务等各种应用。 个人开发 api类:gin 团队大项目:
1 介绍 Beego是一个开源的基于Golang的MVC框架,主要用于Golang Web开发。Beego可以用来快速开发API、Web、后端服务等各种应用。 个人开发 api类:gin 团队大项目:
如果我使用模块,而 GOPATH 旧方法完美运行,路由对我来说根本不起作用。 我是golang的新手,如果我做错了什么,请纠正我。 我一直在尝试使用 bee 创建 API 项目,但我发现所有新项目都必
我正在使用Beego编写一个简单的登录/注销功能。 我在init()文件中的router.go如下所示: func init() { beego.Router("/", &controller
我正在尝试使用 Beego 验证来验证某些表单,但它根本不起作用:无效数据通过且没有错误。 这是相关代码,我不知道哪里出了问题。你能指出错误吗? https://github.com/dionysel
我正在用 beego 制作一个网络应用程序。我是 go 和 beego 的新手。我想在 mysql 数据库中保存一个 pdf 文件。在 php 中,我们可以轻松做到这一点,但在 beego 中,我遇到
有没有办法在Beego orm中使用不等于运算符(!= OR <>)?我不想使用 WHERE IN条件,因为这意味着我必须先查询另一个表。有办法做到这一点吗? 谢谢 最佳答案 此答案适用于可能会误解
运行beego migration时,显示所有的迁移都执行了,但是跳过了一些迁移。请找到场景。 我今天创建并执行了迁移。 我正在合并另一个分支,该分支昨天创建了一个迁移。 再次运行bee migrat
我正在尝试编写我的第一个 beego 网络应用程序,我正在尝试注册一些模型,我在 models/model.go 中注册了它们的 init()函数,但是当我运行命令时 bee run ,我收到以下错误
Beego有渲染部分模板的功能吗?我在 RoR 中使用了这个功能。 Ruby on Rails 部分:局部模板——通常简称为“partials”——是另一种将渲染过程分解为更易于管理的 block 的
我对 beego 很陌生。我开始一个小项目来发现并开始学习框架。我使用 bee 命令来创建项目: bee new my_project beego的版本是: bee :1.4.1 beego :1
我正在使用 Beego 框架,我有两个 html View 文件,一个是登录,另一个是登陆登录.html
目前,我在访问数据库的每个函数的开头使用以下命令。 o := orm.NewOrm() o.Using("default") // Using default, you can use other d
我正在测试 beego 的 http 自定义端点 package test import ( "github.com/astaxie/beego" . "github.com/smar
除了从头创建数据库表的“syncdb”命令外,我没有在文档中找到任何东西。是否有任何命令可以基于 ORM 模型创建和运行迁移?就像在 Django 中一样?添加字段、更改类型等。 最佳答案 不,orm
尝试设置 https,如下所述:https://github.com/astaxie/beego/issues/401并在日志中得到这个: 2016/09/28 14:05:34 [I] [asm_a
截至目前,我的路由如下: beego.Router("/detailed", &controllers.MainController{}, "get:Detailed") 相反,我想像这样路由: be
我刚刚在 beego orm 中遇到了一些问题。如何进行随机顺序查询? 类似于: orm.NewOrm().QueryTable("tbl").OrderBy("rand()").Limit(1).A
我是一名优秀的程序员,十分优秀!