mirror of
https://github.com/beego/bee.git
synced 2024-11-21 23:50:54 +00:00
Merge branch 'master' of github.com:astaxie/bee
This commit is contained in:
commit
acc8c4ddd8
@ -19,9 +19,9 @@ In the current path, will create a folder named [appname]
|
||||
In the appname folder has the follow struct:
|
||||
|
||||
├── conf
|
||||
│ └── app.conf
|
||||
│ └── app.conf
|
||||
├── controllers
|
||||
│ └── default.go
|
||||
│ └── default.go
|
||||
├── main.go
|
||||
└── models
|
||||
└── object.go
|
||||
@ -130,7 +130,7 @@ func (this *ObejctController) Post() {
|
||||
var ob models.Object
|
||||
json.Unmarshal(this.Ctx.RequestBody, &ob)
|
||||
objectid := models.AddOne(ob)
|
||||
this.Data["json"] = "{\"ObjectId\":\"" + objectid + "\"}"
|
||||
this.Data["json"] = map[string]string{"ObjectId": objectid}
|
||||
this.ServeJson()
|
||||
}
|
||||
|
||||
@ -194,6 +194,8 @@ func createapi(cmd *Command, args []string) {
|
||||
fmt.Println("create controllers:", path.Join(apppath, "controllers"))
|
||||
os.Mkdir(path.Join(apppath, "models"), 0755)
|
||||
fmt.Println("create models:", path.Join(apppath, "models"))
|
||||
os.Mkdir(path.Join(apppath, "tests"), 0755)
|
||||
fmt.Println("create tests:", path.Join(apppath, "tests"))
|
||||
|
||||
fmt.Println("create conf app.conf:", path.Join(apppath, "conf", "app.conf"))
|
||||
writetofile(path.Join(apppath, "conf", "app.conf"),
|
||||
|
1
bee.go
1
bee.go
@ -76,6 +76,7 @@ var commands = []*Command{
|
||||
cmdPack,
|
||||
cmdApiapp,
|
||||
cmdRouter,
|
||||
cmdTest,
|
||||
//cmdReStart,
|
||||
}
|
||||
|
||||
|
82
test.go
Normal file
82
test.go
Normal file
@ -0,0 +1,82 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
path "path/filepath"
|
||||
"os/exec"
|
||||
"time"
|
||||
"bytes"
|
||||
)
|
||||
|
||||
var cmdTest = &Command{
|
||||
UsageLine: "test [appname]",
|
||||
Short: "test the app",
|
||||
Long: ``,
|
||||
}
|
||||
|
||||
func init() {
|
||||
cmdTest.Run = testApp
|
||||
}
|
||||
|
||||
var started= make(chan bool)
|
||||
|
||||
func testApp(cmd *Command, args []string) {
|
||||
if len(args) != 1 {
|
||||
colorLog("[ERRO] Cannot start running[ %s ]\n",
|
||||
"argument 'appname' is missing")
|
||||
os.Exit(2)
|
||||
}
|
||||
crupath, _ := os.Getwd()
|
||||
Debugf("current path:%s\n", crupath)
|
||||
|
||||
err := loadConfig()
|
||||
if err != nil {
|
||||
colorLog("[ERRO] Fail to parse bee.json[ %s ]", err)
|
||||
}
|
||||
var paths []string
|
||||
paths = append(paths,
|
||||
path.Join(crupath, conf.DirStruct.Controllers),
|
||||
path.Join(crupath, conf.DirStruct.Models),
|
||||
path.Join(crupath, "./")) // Current path.
|
||||
// Because monitor files has some issues, we watch current directory
|
||||
// and ignore non-go files.
|
||||
paths = append(paths, conf.DirStruct.Others...)
|
||||
paths = append(paths, conf.MainFiles.Others...)
|
||||
|
||||
NewWatcher(paths)
|
||||
appname = args[0]
|
||||
Autobuild()
|
||||
for {
|
||||
select {
|
||||
case <-started:
|
||||
runTest()
|
||||
Kill()
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func runTest(){
|
||||
colorLog("[INFO] Start testing...\n")
|
||||
time.Sleep(time.Second*5)
|
||||
path, _ := os.Getwd()
|
||||
os.Chdir(path+"/tests")
|
||||
|
||||
var err error
|
||||
icmd := exec.Command("go", "test")
|
||||
var out,errbuffer bytes.Buffer
|
||||
icmd.Stdout = &out
|
||||
icmd.Stderr = &errbuffer
|
||||
colorLog("[INFO] ============== Test Begin ===================\n")
|
||||
err = icmd.Run()
|
||||
colorLog(out.String())
|
||||
colorLog(errbuffer.String())
|
||||
colorLog("[INFO] ============== Test End ===================\n")
|
||||
|
||||
if err != nil {
|
||||
colorLog("[ERRO] ============== Test failed ===================\n")
|
||||
colorLog("[ERRO] " ,err)
|
||||
return
|
||||
}
|
||||
colorLog("[SUCC] Test finish\n")
|
||||
}
|
4
util.go
4
util.go
@ -50,6 +50,10 @@ const (
|
||||
// Errors have to surrounded by "[ " and " ]"(space).
|
||||
func colorLog(format string, a ...interface{}) {
|
||||
log := fmt.Sprintf(format, a...)
|
||||
if len(log) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
if runtime.GOOS != "windows" {
|
||||
var clog string
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user