more tests
This commit is contained in:
parent
45f23ffc9d
commit
5d752706f0
|
@ -22,8 +22,8 @@ test:
|
|||
override:
|
||||
# './...' is a relative pattern which means all subdirectories
|
||||
- go test -v -race -coverprofile=coverage.txt -covermode=atomic
|
||||
- go test -v -race -db=mysql -conn_str="root:@/xorm_test"
|
||||
- go test -v -race -db=postgres -conn_str="dbname=xorm_test sslmode=disable"
|
||||
- go test -v -race -db=mysql -conn_str="root:@/xorm_test" -coverprofile=coverage.txt -covermode=atomic
|
||||
- go test -v -race -db=postgres -conn_str="dbname=xorm_test sslmode=disable" -coverprofile=coverage.txt -covermode=atomic
|
||||
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh
|
||||
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./mysql.sh
|
||||
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./postgres.sh
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package xorm
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestRows(t *testing.T) {
|
||||
assert.NoError(t, prepareEngine())
|
||||
|
||||
type UserRows struct {
|
||||
Id int64
|
||||
IsMan bool
|
||||
}
|
||||
|
||||
assert.NoError(t, testEngine.Sync2(new(UserRows)))
|
||||
|
||||
cnt, err := testEngine.Insert(&UserRows{
|
||||
IsMan: true,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
rows, err := testEngine.Rows(new(UserRows))
|
||||
assert.NoError(t, err)
|
||||
defer rows.Close()
|
||||
|
||||
cnt = 0
|
||||
user := new(UserRows)
|
||||
for rows.Next() {
|
||||
err = rows.Scan(user)
|
||||
assert.NoError(t, err)
|
||||
cnt++
|
||||
}
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
}
|
|
@ -4,13 +4,29 @@
|
|||
|
||||
package xorm
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSetExpr(t *testing.T) {
|
||||
assert.NoError(t, prepareEngine())
|
||||
|
||||
type User struct {
|
||||
Id int64
|
||||
Show bool
|
||||
}
|
||||
|
||||
testEngine.SetExpr("show", "NOT show").Id(1).Update(new(User))
|
||||
assert.NoError(t, testEngine.Sync2(new(User)))
|
||||
|
||||
cnt, err := testEngine.Insert(&User{
|
||||
Show: true,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
cnt, err = testEngine.SetExpr("show", "NOT show").Id(1).Update(new(User))
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package xorm
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestIterate(t *testing.T) {
|
||||
assert.NoError(t, prepareEngine())
|
||||
|
||||
type UserIterate struct {
|
||||
Id int64
|
||||
IsMan bool
|
||||
}
|
||||
|
||||
assert.NoError(t, testEngine.Sync2(new(UserIterate)))
|
||||
|
||||
cnt, err := testEngine.Insert(&UserIterate{
|
||||
IsMan: true,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
cnt = 0
|
||||
err = testEngine.Iterate(new(UserIterate), func(i int, bean interface{}) error {
|
||||
user := bean.(*UserIterate)
|
||||
assert.EqualValues(t, 1, user.Id)
|
||||
assert.EqualValues(t, true, user.IsMan)
|
||||
cnt++
|
||||
return nil
|
||||
})
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
}
|
23
xorm_test.go
23
xorm_test.go
|
@ -4,6 +4,7 @@ import (
|
|||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
|
@ -14,6 +15,7 @@ import (
|
|||
|
||||
var (
|
||||
testEngine *Engine
|
||||
dbType string
|
||||
connString string
|
||||
|
||||
db = flag.String("db", "sqlite3", "the tested database")
|
||||
|
@ -47,12 +49,13 @@ func createEngine(dbType, connStr string) error {
|
|||
}
|
||||
|
||||
func prepareEngine() error {
|
||||
return createEngine(*db, connString)
|
||||
return createEngine(dbType, connString)
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
flag.Parse()
|
||||
|
||||
dbType = *db
|
||||
if *db == "sqlite3" {
|
||||
if ptrConnStr == nil {
|
||||
connString = "./test.db"
|
||||
|
@ -67,11 +70,27 @@ func TestMain(m *testing.M) {
|
|||
connString = *ptrConnStr
|
||||
}
|
||||
|
||||
dbs := strings.Split(*db, ";")
|
||||
conns := strings.Split(connString, ";")
|
||||
|
||||
var res int
|
||||
for i := 0; i < len(dbs); i++ {
|
||||
dbType = dbs[i]
|
||||
connString = conns[i]
|
||||
testEngine = nil
|
||||
|
||||
if err := prepareEngine(); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
os.Exit(m.Run())
|
||||
|
||||
code := m.Run()
|
||||
if code > 0 {
|
||||
res = code
|
||||
}
|
||||
}
|
||||
|
||||
os.Exit(res)
|
||||
}
|
||||
|
||||
func TestPing(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue