Setup tests script
This commit is contained in:
		
							parent
							
								
									a67be2a1f1
								
							
						
					
					
						commit
						fe24c3f105
					
				| @ -18,7 +18,7 @@ type User struct { | |||||||
| 	Toys      []*tests.Toy `gorm:"polymorphic:Owner"` | 	Toys      []*tests.Toy `gorm:"polymorphic:Owner"` | ||||||
| 	CompanyID *int | 	CompanyID *int | ||||||
| 	Company   *tests.Company | 	Company   *tests.Company | ||||||
| 	ManagerID *int | 	ManagerID *uint | ||||||
| 	Manager   *User | 	Manager   *User | ||||||
| 	Team      []*User           `gorm:"foreignkey:ManagerID"` | 	Team      []*User           `gorm:"foreignkey:ManagerID"` | ||||||
| 	Languages []*tests.Language `gorm:"many2many:UserSpeak"` | 	Languages []*tests.Language `gorm:"many2many:UserSpeak"` | ||||||
|  | |||||||
| @ -40,7 +40,7 @@ func checkUserSchema(t *testing.T, user *schema.Schema) { | |||||||
| 		{Name: "Age", DBName: "age", BindNames: []string{"Age"}, DataType: schema.Uint}, | 		{Name: "Age", DBName: "age", BindNames: []string{"Age"}, DataType: schema.Uint}, | ||||||
| 		{Name: "Birthday", DBName: "birthday", BindNames: []string{"Birthday"}, DataType: schema.Time}, | 		{Name: "Birthday", DBName: "birthday", BindNames: []string{"Birthday"}, DataType: schema.Time}, | ||||||
| 		{Name: "CompanyID", DBName: "company_id", BindNames: []string{"CompanyID"}, DataType: schema.Int}, | 		{Name: "CompanyID", DBName: "company_id", BindNames: []string{"CompanyID"}, DataType: schema.Int}, | ||||||
| 		{Name: "ManagerID", DBName: "manager_id", BindNames: []string{"ManagerID"}, DataType: schema.Int}, | 		{Name: "ManagerID", DBName: "manager_id", BindNames: []string{"ManagerID"}, DataType: schema.Uint}, | ||||||
| 		{Name: "Active", DBName: "active", BindNames: []string{"Active"}, DataType: schema.Bool}, | 		{Name: "Active", DBName: "active", BindNames: []string{"Active"}, DataType: schema.Bool}, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								tests/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								tests/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | # Test Guide | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | cd tests | ||||||
|  | # prepare test databases | ||||||
|  | docker-compose up | ||||||
|  | 
 | ||||||
|  | # run all tests | ||||||
|  | ./tests_all.sh | ||||||
|  | ``` | ||||||
							
								
								
									
										30
									
								
								tests/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tests/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | |||||||
|  | version: '3' | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |   mysql: | ||||||
|  |     image: 'mysql:latest' | ||||||
|  |     ports: | ||||||
|  |       - 9910:3306 | ||||||
|  |     environment: | ||||||
|  |       - MYSQL_DATABASE=gorm | ||||||
|  |       - MYSQL_USER=gorm | ||||||
|  |       - MYSQL_PASSWORD=gorm | ||||||
|  |       - MYSQL_RANDOM_ROOT_PASSWORD="yes" | ||||||
|  |   postgres: | ||||||
|  |     image: 'postgres:latest' | ||||||
|  |     ports: | ||||||
|  |       - 9920:5432 | ||||||
|  |     environment: | ||||||
|  |       - POSTGRES_USER=gorm | ||||||
|  |       - POSTGRES_DB=gorm | ||||||
|  |       - POSTGRES_PASSWORD=gorm | ||||||
|  |   mssql: | ||||||
|  |     image: 'mcmoe/mssqldocker:latest' | ||||||
|  |     ports: | ||||||
|  |       - 9930:1433 | ||||||
|  |     environment: | ||||||
|  |       - ACCEPT_EULA=Y | ||||||
|  |       - SA_PASSWORD=LoremIpsum86 | ||||||
|  |       - MSSQL_DB=gorm | ||||||
|  |       - MSSQL_USER=gorm | ||||||
|  |       - MSSQL_PASSWORD=LoremIpsum86 | ||||||
							
								
								
									
										25
									
								
								tests/tests_all.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								tests/tests_all.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | dialects=("postgres" "mysql" "mssql" "sqlite") | ||||||
|  | 
 | ||||||
|  | if [[ $(pwd) == *"gorm/tests"* ]]; then | ||||||
|  |   cd .. | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | for dialect in "${dialects[@]}" ; do | ||||||
|  |   if [ "$GORM_DIALECT" = "" ] || [ "$GORM_DIALECT" = "${dialect}" ] | ||||||
|  |   then | ||||||
|  |     if [ "$GORM_VERBOSE" = "" ] | ||||||
|  |     then | ||||||
|  |       cd dialects/${dialect} | ||||||
|  |       DEBUG=false GORM_DIALECT=${dialect} go test -race ./... | ||||||
|  |       cd ../.. | ||||||
|  | 
 | ||||||
|  |       DEBUG=false GORM_DIALECT=${dialect} go test -race ./... | ||||||
|  |     else | ||||||
|  |       cd dialects/${dialect} | ||||||
|  |       DEBUG=false GORM_DIALECT=${dialect} go test -race ./... | ||||||
|  |       cd ../.. | ||||||
|  | 
 | ||||||
|  |       DEBUG=false GORM_DIALECT=${dialect} go test -race -v ./... | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  | done | ||||||
							
								
								
									
										132
									
								
								wercker.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								wercker.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,132 @@ | |||||||
|  | # use the default golang container from Docker Hub | ||||||
|  | box: golang | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |     - name: mariadb | ||||||
|  |       id: mariadb:latest | ||||||
|  |       env: | ||||||
|  |           MYSQL_DATABASE: gorm | ||||||
|  |           MYSQL_USER: gorm | ||||||
|  |           MYSQL_PASSWORD: gorm | ||||||
|  |           MYSQL_RANDOM_ROOT_PASSWORD: "yes" | ||||||
|  |     - name: mysql | ||||||
|  |       id: mysql:latest | ||||||
|  |       env: | ||||||
|  |           MYSQL_DATABASE: gorm | ||||||
|  |           MYSQL_USER: gorm | ||||||
|  |           MYSQL_PASSWORD: gorm | ||||||
|  |           MYSQL_RANDOM_ROOT_PASSWORD: "yes" | ||||||
|  |     - name: mysql57 | ||||||
|  |       id: mysql:5.7 | ||||||
|  |       env: | ||||||
|  |           MYSQL_DATABASE: gorm | ||||||
|  |           MYSQL_USER: gorm | ||||||
|  |           MYSQL_PASSWORD: gorm | ||||||
|  |           MYSQL_RANDOM_ROOT_PASSWORD: "yes" | ||||||
|  |     - name: mysql56 | ||||||
|  |       id: mysql:5.6 | ||||||
|  |       env: | ||||||
|  |           MYSQL_DATABASE: gorm | ||||||
|  |           MYSQL_USER: gorm | ||||||
|  |           MYSQL_PASSWORD: gorm | ||||||
|  |           MYSQL_RANDOM_ROOT_PASSWORD: "yes" | ||||||
|  |     - name: postgres | ||||||
|  |       id: postgres:latest | ||||||
|  |       env: | ||||||
|  |           POSTGRES_USER: gorm | ||||||
|  |           POSTGRES_PASSWORD: gorm | ||||||
|  |           POSTGRES_DB: gorm | ||||||
|  |     - name: postgres11 | ||||||
|  |       id: postgres:11 | ||||||
|  |       env: | ||||||
|  |           POSTGRES_USER: gorm | ||||||
|  |           POSTGRES_PASSWORD: gorm | ||||||
|  |           POSTGRES_DB: gorm | ||||||
|  |     - name: postgres10 | ||||||
|  |       id: postgres:10 | ||||||
|  |       env: | ||||||
|  |           POSTGRES_USER: gorm | ||||||
|  |           POSTGRES_PASSWORD: gorm | ||||||
|  |           POSTGRES_DB: gorm | ||||||
|  |     - name: mssql | ||||||
|  |       id: mcmoe/mssqldocker:latest | ||||||
|  |       env: | ||||||
|  |         ACCEPT_EULA: Y | ||||||
|  |         SA_PASSWORD: LoremIpsum86 | ||||||
|  |         MSSQL_DB: gorm | ||||||
|  |         MSSQL_USER: gorm | ||||||
|  |         MSSQL_PASSWORD: LoremIpsum86 | ||||||
|  | 
 | ||||||
|  | # The steps that will be executed in the build pipeline | ||||||
|  | build: | ||||||
|  |     # The steps that will be executed on build | ||||||
|  |     steps: | ||||||
|  |         # Sets the go workspace and places you package | ||||||
|  |         # at the right place in the workspace tree | ||||||
|  |         - setup-go-workspace | ||||||
|  | 
 | ||||||
|  |         # Gets the dependencies | ||||||
|  |         - script: | ||||||
|  |                 name: go get | ||||||
|  |                 code: | | ||||||
|  |                     cd $WERCKER_SOURCE_DIR | ||||||
|  |                     go version | ||||||
|  |                     go get -t -v ./... | ||||||
|  | 
 | ||||||
|  |         # Build the project | ||||||
|  |         - script: | ||||||
|  |                 name: go build | ||||||
|  |                 code: | | ||||||
|  |                     go build ./... | ||||||
|  | 
 | ||||||
|  |         # Test the project | ||||||
|  |         - script: | ||||||
|  |                 name: test sqlite | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=sqlite $GORM_VERBOSE=true ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test mariadb | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=mysql $GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(mariadb:3306)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test mysql | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=mysql $GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(mysql:3306)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test mysql5.7 | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=mysql $GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(mysql57:3306)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test mysql5.6 | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=mysql $GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(mysql56:3306)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test postgres | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=postgres $GORM_VERBOSE=true GORM_DSN="host=postgres user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test postgres11 | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=postgres $GORM_VERBOSE=true GORM_DSN="host=postgres96 user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test postgres10 | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=postgres $GORM_VERBOSE=true GORM_DSN="host=postgres95 user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: test mssql | ||||||
|  |                 code: | | ||||||
|  |                     GORM_DIALECT=mssql $GORM_VERBOSE=true GORM_DSN="sqlserver://gorm:LoremIpsum86@mssql:1433?database=gorm" ./tests/tests_all.sh | ||||||
|  | 
 | ||||||
|  |         - script: | ||||||
|  |                 name: codecov | ||||||
|  |                 code: | | ||||||
|  |                     go test -race -coverprofile=coverage.txt -covermode=atomic ./... | ||||||
|  |                     bash <(curl -s https://codecov.io/bash) | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu