From a63a26eb208aa95b6a601bf12be6f4b572bb398b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 13 Nov 2019 05:54:10 +0000 Subject: [PATCH] Improve ci tests (#1477) --- .drone.yml | 527 ++++++----------------------------------- session_insert_test.go | 23 +- session_schema_test.go | 2 +- session_update_test.go | 133 ++--------- types_null_test.go | 34 +-- 5 files changed, 117 insertions(+), 602 deletions(-) diff --git a/.drone.yml b/.drone.yml index c373975d..b2198e38 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,11 +1,6 @@ --- kind: pipeline -name: matrix-1 - -platform: - os: linux - arch: amd64 - +name: go1.10-test workspace: base: /go path: src/gitea.com/xorm/xorm @@ -15,9 +10,7 @@ steps: pull: default image: golang:1.10 commands: - - go get -t -d -v ./... - - go get -u xorm.io/core - - go get -u xorm.io/builder + - go get -t -d -v - go build -v when: event: @@ -27,8 +20,9 @@ steps: - name: test-sqlite pull: default image: golang:1.10 + depends_on: + - build commands: - - go get -u github.com/wadey/gocovmerge - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic" - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" when: @@ -39,6 +33,8 @@ steps: - name: test-mysql pull: default image: golang:1.10 + depends_on: + - build commands: - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic" @@ -50,6 +46,8 @@ steps: - name: test-mysql-utf8mb4 pull: default image: golang:1.10 + depends_on: + - test-mysql commands: - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic" @@ -61,6 +59,8 @@ steps: - name: test-mymysql pull: default image: golang:1.10 + depends_on: + - test-mysql-utf8mb4 commands: - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic" - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic" @@ -72,6 +72,8 @@ steps: - name: test-postgres pull: default image: golang:1.10 + depends_on: + - build commands: - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic" - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic" @@ -83,6 +85,8 @@ steps: - name: test-postgres-schema pull: default image: golang:1.10 + depends_on: + - build commands: - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic" - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic" @@ -94,6 +98,8 @@ steps: - name: test-mssql pull: default image: golang:1.10 + depends_on: + - build commands: - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic" - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic" @@ -105,10 +111,30 @@ steps: - name: test-tidb pull: default image: golang:1.10 + depends_on: + - build commands: - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic" - - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt + when: + event: + - push + - pull_request + +- name: test-end + pull: default + image: golang:1.10 + depends_on: + - test-sqlite + - test-mysql + - test-mysql-utf8mb4 + - test-mymysql + - test-postgres + - test-postgres-schema + - test-mssql + - test-tidb + commands: + - echo "go1.10 build end" when: event: - push @@ -127,15 +153,6 @@ services: - tag - pull_request -- name: tidb - pull: default - image: pingcap/tidb:v3.0.3 - when: - event: - - push - - tag - - pull_request - - name: pgsql pull: default image: postgres:9.5 @@ -161,175 +178,6 @@ services: - tag - pull_request ---- -kind: pipeline -name: matrix-2 - -platform: - os: linux - arch: amd64 - -workspace: - base: /go - path: src/gitea.com/xorm/xorm - -steps: -- name: build - pull: default - image: golang:1.11 - environment: - GO111MODULE: "off" - commands: - - go get -t -d -v ./... - - go get -u xorm.io/core - - go get -u xorm.io/builder - - go build -v - when: - event: - - push - - pull_request - -- name: build-gomod - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - go build -v - when: - event: - - push - - pull_request - -- name: test-sqlite - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic" - - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mysql - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic" - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mysql-utf8mb4 - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic" - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mymysql - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic" - - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-postgres - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic" - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-postgres-schema - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic" - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mssql - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic" - - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic" - - when: - event: - - push - - pull_request - -- name: test-tidb - pull: default - image: golang:1.11 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic" - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic" - - go get github.com/wadey/gocovmerge - - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt - when: - event: - - push - - pull_request - -services: -- name: mysql - pull: default - image: mysql:5.7 - environment: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_DATABASE: xorm_test - when: - event: - - push - - tag - - pull_request - - name: tidb pull: default image: pingcap/tidb:v3.0.3 @@ -339,264 +187,11 @@ services: - tag - pull_request -- name: pgsql - pull: default - image: postgres:9.5 - environment: - POSTGRES_DB: xorm_test - POSTGRES_USER: postgres - when: - event: - - push - - tag - - pull_request - -- name: mssql - pull: default - image: microsoft/mssql-server-linux:latest - environment: - ACCEPT_EULA: Y - SA_PASSWORD: yourStrong(!)Password - MSSQL_PID: Developer - when: - event: - - push - - tag - - pull_request - --- kind: pipeline -name: matrix-3 - -platform: - os: linux - arch: amd64 - -workspace: - base: /go - path: src/gitea.com/xorm/xorm - +name: go1.13-test steps: - - name: build - pull: default - image: golang:1.12 - environment: - GO111MODULE: "off" - commands: - - go get -t -d -v ./... - - go get -u xorm.io/core - - go get -u xorm.io/builder - - go build -v - when: - event: - - push - - pull_request - -- name: build-gomod - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - go build -v - when: - event: - - push - - pull_request - -- name: test-sqlite - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic" - - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mysql - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic" - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mysql-utf8mb4 - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic" - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mymysql - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic" - - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-postgres - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic" - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-postgres-schema - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic" - - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-mssql - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic" - - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic" - when: - event: - - push - - pull_request - -- name: test-tidb - pull: default - image: golang:1.12 - environment: - GO111MODULE: "on" - GOPROXY: "https://goproxy.cn" - commands: - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic" - - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic" - - go get github.com/wadey/gocovmerge - - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt - when: - event: - - push - - pull_request - -services: -- name: mysql - pull: default - image: mysql:5.7 - environment: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_DATABASE: xorm_test - when: - event: - - push - - tag - - pull_request - -- name: tidb - pull: default - image: pingcap/tidb:v3.0.3 - when: - event: - - push - - tag - - pull_request - -- name: pgsql - pull: default - image: postgres:9.5 - environment: - POSTGRES_DB: xorm_test - POSTGRES_USER: postgres - when: - event: - - push - - tag - - pull_request - -- name: mssql - pull: default - image: microsoft/mssql-server-linux:latest - environment: - ACCEPT_EULA: Y - SA_PASSWORD: yourStrong(!)Password - MSSQL_PID: Developer - when: - event: - - push - - tag - - pull_request - ---- -kind: pipeline -name: go1.13 - -platform: - os: linux - arch: amd64 - -workspace: - base: /go - path: src/gitea.com/xorm/xorm - -steps: - -- name: build - pull: default - image: golang:1.13 - environment: - GO111MODULE: "off" - commands: - - go get -t -d -v ./... - - go get -u xorm.io/core - - go get -u xorm.io/builder - - go build -v - when: - event: - - push - - pull_request - -- name: build-gomod pull: default image: golang:1.13 environment: @@ -604,6 +199,7 @@ steps: GOPROXY: "https://goproxy.cn" commands: - go build -v + - go vet when: event: - push @@ -640,6 +236,8 @@ steps: - name: test-mysql-utf8mb4 pull: default image: golang:1.13 + depends_on: + - test-mysql environment: GO111MODULE: "on" GOPROXY: "https://goproxy.cn" @@ -654,6 +252,8 @@ steps: - name: test-mymysql pull: default image: golang:1.13 + depends_on: + - test-mysql-utf8mb4 environment: GO111MODULE: "on" GOPROXY: "https://goproxy.cn" @@ -716,6 +316,28 @@ steps: commands: - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic" + when: + event: + - push + - pull_request + +- name: merge_coverage + pull: default + image: golang:1.13 + environment: + GO111MODULE: "on" + GOPROXY: "https://goproxy.cn" + depends_on: + - build + - test-sqlite + - test-mysql + - test-mysql-utf8mb4 + - test-mymysql + - test-postgres + - test-postgres-schema + - test-mssql + - test-tidb + commands: - go get github.com/wadey/gocovmerge - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt when: @@ -724,6 +346,7 @@ steps: - pull_request services: + - name: mysql pull: default image: mysql:5.7 @@ -736,15 +359,6 @@ services: - tag - pull_request -- name: tidb - pull: default - image: pingcap/tidb:v3.0.3 - when: - event: - - push - - tag - - pull_request - - name: pgsql pull: default image: postgres:9.5 @@ -764,6 +378,15 @@ services: ACCEPT_EULA: Y SA_PASSWORD: yourStrong(!)Password MSSQL_PID: Developer + when: + event: + - push + - tag + - pull_request + +- name: tidb + pull: default + image: pingcap/tidb:v3.0.3 when: event: - push diff --git a/session_insert_test.go b/session_insert_test.go index 2785401d..e6100fdc 100644 --- a/session_insert_test.go +++ b/session_insert_test.go @@ -531,9 +531,7 @@ func TestCreatedJsonTime(t *testing.T) { var dis = make([]MyJsonTime, 0) err = testEngine.Find(&dis) - if err != nil { - t.Fatal(err) - } + assert.NoError(t, err) } func TestInsertMulti2(t *testing.T) { @@ -552,12 +550,7 @@ func TestInsertMulti2(t *testing.T) { t.Error(err) panic(err) } - if cnt != int64(len(users)) { - err = errors.New("insert not returned 1") - t.Error(err) - panic(err) - return - } + assert.EqualValues(t, len(users), cnt) users2 := []*Userinfo{ &Userinfo{Username: "1xlw", Departname: "dev", Alias: "lunny2", Created: time.Now()}, @@ -567,16 +560,8 @@ func TestInsertMulti2(t *testing.T) { } cnt, err = testEngine.Insert(&users2) - if err != nil { - t.Error(err) - panic(err) - } - - if cnt != int64(len(users2)) { - err = errors.New(fmt.Sprintf("insert not returned %v", len(users2))) - t.Error(err) - panic(err) - } + assert.NoError(t, err) + assert.EqualValues(t, len(users2), cnt) } func TestInsertTwoTable(t *testing.T) { diff --git a/session_schema_test.go b/session_schema_test.go index 4505381f..f24d1405 100644 --- a/session_schema_test.go +++ b/session_schema_test.go @@ -274,7 +274,7 @@ func TestCharst(t *testing.T) { func TestSync2_1(t *testing.T) { type WxTest struct { - Id int `xorm:"not null pk autoincr INT(64)` + Id int `xorm:"not null pk autoincr INT(64)"` Passport_user_type int16 `xorm:"null int"` Id_delete int8 `xorm:"null int default 1"` } diff --git a/session_update_test.go b/session_update_test.go index e6c88bf8..77b188f9 100644 --- a/session_update_test.go +++ b/session_update_test.go @@ -299,47 +299,20 @@ func TestUpdate1(t *testing.T) { // update by id user := Userinfo{Username: "xxx", Height: 1.2} cnt, err := testEngine.ID(ori.Uid).Update(&user) - if err != nil { - t.Error(err) - panic(err) - } - if cnt != 1 { - err = errors.New("update not returned 1") - t.Error(err) - panic(err) - return - } + assert.NoError(t, err) + assert.EqualValues(t, 1, cnt) condi := Condi{"username": "zzz", "departname": ""} cnt, err = testEngine.Table(&user).ID(ori.Uid).Update(&condi) - if err != nil { - t.Error(err) - panic(err) - } - if cnt != 1 { - err = errors.New("update not returned 1") - t.Error(err) - panic(err) - return - } + assert.NoError(t, err) + assert.EqualValues(t, 1, cnt) cnt, err = testEngine.Update(&Userinfo{Username: "yyy"}, &user) - if err != nil { - t.Error(err) - panic(err) - } - total, err := testEngine.Count(&user) - if err != nil { - t.Error(err) - panic(err) - } + assert.NoError(t, err) - if cnt != total { - err = errors.New("insert not returned 1") - t.Error(err) - panic(err) - return - } + total, err := testEngine.Count(&user) + assert.NoError(t, err) + assert.EqualValues(t, cnt, total) // nullable update { @@ -446,17 +419,8 @@ func TestUpdate1(t *testing.T) { } cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"}) - if err != nil { - t.Error(err) - panic(err) - } - - if cnt != 1 { - err = errors.New(fmt.Sprintf("insert not returned 1 but %d", cnt)) - t.Error(err) - panic(err) - return - } + assert.NoError(t, err) + assert.EqualValues(t, 1, cnt) var s = "test" @@ -474,20 +438,8 @@ func TestUpdate1(t *testing.T) { col3 := &UpdateAllCols{} has, err = testEngine.ID(col2.Id).Get(col3) assert.NoError(t, err) - - if !has { - err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id)) - t.Error(err) - panic(err) - return - } - - if *col2 != *col3 { - err = errors.New(fmt.Sprintf("col2 should eq col3")) - t.Error(err) - panic(err) - return - } + assert.True(t, has) + assert.EqualValues(t, *col2, *col3) { @@ -515,24 +467,9 @@ func TestUpdate1(t *testing.T) { col3 := &UpdateMustCols{} has, err := testEngine.ID(col2.Id).Get(col3) - if err != nil { - t.Error(err) - panic(err) - } - - if !has { - err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id)) - t.Error(err) - panic(err) - return - } - - if *col2 != *col3 { - err = errors.New(fmt.Sprintf("col2 should eq col3")) - t.Error(err) - panic(err) - return - } + assert.NoError(t, err) + assert.True(t, has) + assert.EqualValues(t, *col2, *col3) } } @@ -821,13 +758,7 @@ func TestUpdateSameMapper(t *testing.T) { cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"}) assert.NoError(t, err) - - if cnt != 1 { - err = errors.New(fmt.Sprintf("insert not returned 1 but %d", cnt)) - t.Error(err) - panic(err) - return - } + assert.EqualValues(t, 1, cnt) col1 := &UpdateAllCols{} err = testEngine.Sync(col1) @@ -843,20 +774,8 @@ func TestUpdateSameMapper(t *testing.T) { col3 := &UpdateAllCols{} has, err = testEngine.ID(col2.Id).Get(col3) assert.NoError(t, err) - - if !has { - err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id)) - t.Error(err) - panic(err) - return - } - - if *col2 != *col3 { - err = errors.New(fmt.Sprintf("col2 should eq col3")) - t.Error(err) - panic(err) - return - } + assert.True(t, has) + assert.EqualValues(t, *col2, *col3) { col1 := &UpdateMustCols{} @@ -875,20 +794,8 @@ func TestUpdateSameMapper(t *testing.T) { col3 := &UpdateMustCols{} has, err := testEngine.ID(col2.Id).Get(col3) assert.NoError(t, err) - - if !has { - err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id)) - t.Error(err) - panic(err) - return - } - - if *col2 != *col3 { - err = errors.New(fmt.Sprintf("col2 should eq col3")) - t.Error(err) - panic(err) - return - } + assert.True(t, has) + assert.EqualValues(t, *col2, *col3) } { diff --git a/types_null_test.go b/types_null_test.go index 22fc1024..7a13837e 100644 --- a/types_null_test.go +++ b/types_null_test.go @@ -97,10 +97,10 @@ func TestNullStructInsert(t *testing.T) { if true { item := NullType{ - Name: sql.NullString{"haolei", true}, - Age: sql.NullInt64{34, true}, - Height: sql.NullFloat64{1.72, true}, - IsMan: sql.NullBool{true, true}, + Name: sql.NullString{String: "haolei", Valid: true}, + Age: sql.NullInt64{Int64: 34, Valid: true}, + Height: sql.NullFloat64{Float64: 1.72, Valid: true}, + IsMan: sql.NullBool{Bool: true, Valid: true}, } _, err := testEngine.Insert(&item) if err != nil { @@ -120,10 +120,10 @@ func TestNullStructInsert(t *testing.T) { for i := 0; i < 5; i++ { item := NullType{ - Name: sql.NullString{"haolei_" + fmt.Sprint(i+1), true}, - Age: sql.NullInt64{30 + int64(i), true}, - Height: sql.NullFloat64{1.5 + 1.1*float64(i), true}, - IsMan: sql.NullBool{true, true}, + Name: sql.NullString{String: "haolei_" + fmt.Sprint(i+1), Valid: true}, + Age: sql.NullInt64{Int64: 30 + int64(i), Valid: true}, + Height: sql.NullFloat64{Float64: 1.5 + 1.1*float64(i), Valid: true}, + IsMan: sql.NullBool{Bool: true, Valid: true}, CustomStruct: CustomStruct{i, i + 1, i + 2}, } @@ -173,8 +173,8 @@ func TestNullStructUpdate(t *testing.T) { if true { // 测试可插入NULL item := new(NullType) - item.Age = sql.NullInt64{23, true} - item.Height = sql.NullFloat64{0, false} // update to NULL + item.Age = sql.NullInt64{Int64: 23, Valid: true} + item.Height = sql.NullFloat64{Float64: 0, Valid: false} // update to NULL affected, err := testEngine.ID(2).Cols("age", "height", "is_man").Update(item) if err != nil { @@ -190,7 +190,7 @@ func TestNullStructUpdate(t *testing.T) { if true { // 测试In update item := new(NullType) - item.Age = sql.NullInt64{23, true} + item.Age = sql.NullInt64{Int64: 23, Valid: true} affected, err := testEngine.In("id", 3, 4).Cols("age", "height", "is_man").Update(item) if err != nil { t.Error(err) @@ -205,9 +205,9 @@ func TestNullStructUpdate(t *testing.T) { if true { // 测试where item := new(NullType) - item.Name = sql.NullString{"nullname", true} - item.IsMan = sql.NullBool{true, true} - item.Age = sql.NullInt64{34, true} + item.Name = sql.NullString{String: "nullname", Valid: true} + item.IsMan = sql.NullBool{Bool: true, Valid: true} + item.Age = sql.NullInt64{Int64: 34, Valid: true} _, err := testEngine.Where("age > ?", 34).Update(item) if err != nil { @@ -218,9 +218,9 @@ func TestNullStructUpdate(t *testing.T) { if true { // 修改全部时,插入空值 item := &NullType{ - Name: sql.NullString{"winxxp", true}, - Age: sql.NullInt64{30, true}, - Height: sql.NullFloat64{1.72, true}, + Name: sql.NullString{String: "winxxp", Valid: true}, + Age: sql.NullInt64{Int64: 30, Valid: true}, + Height: sql.NullFloat64{Float64: 1.72, Valid: true}, // IsMan: sql.NullBool{true, true}, }