Merge branch 'master' of github.com:astaxie/bee

This commit is contained in:
Unknown 2013-08-24 04:39:18 +08:00
commit acc8c4ddd8
5 changed files with 343 additions and 253 deletions

View File

@ -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
View File

@ -76,6 +76,7 @@ var commands = []*Command{
cmdPack,
cmdApiapp,
cmdRouter,
cmdTest,
//cmdReStart,
}

82
test.go Normal file
View 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")
}

View File

@ -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

View File

@ -150,6 +150,7 @@ func Start(appname string) {
cmd.Stderr = os.Stderr
go cmd.Run()
started<-true
}
// checkTMPFile returns true if the event was for TMP files.