gotests自动生成测试用例

Posted IT界的测试混子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gotests自动生成测试用例相关的知识,希望对你有一定的参考价值。

发现一个自动生成测试用例的工具gotests。

gotests
https://github.com/cweill/gotests

下载

go get -u github.com/cweill/gotests/...

举个栗子:
add.go

package main

func Add(a int, b int) int 
	return a + b


同目录下执行

gotests -all -w ./add.go

同目录自动生成 add_test.go文件

package main

import "testing"

func TestAdd(t *testing.T) 
	type args struct 
		a int
		b int
	
	tests := []struct 
		name string
		args args
		want int
	
		// TODO: Add test cases.
	
	for _, tt := range tests 
		t.Run(tt.name, func(t *testing.T) 
			if got := Add(tt.args.a, tt.args.b); got != tt.want 
				t.Errorf("Add() = %v, want %v", got, tt.want)
			
		)
	

填充用例数据:

package main

import "testing"

func TestAdd(t *testing.T) 
	type args struct 
		a int
		b int
	
	tests := []struct 
		name string
		args args
		want int
	
		// TODO: Add test cases.
		
			"a=3,b=1",
			args3, 1,
			4,
		,
		
			"a=3,b=-1",
			args3, -1,
			4,
		,
	
	for _, tt := range tests 
		t.Run(tt.name, func(t *testing.T) 
			if got := Add(tt.args.a, tt.args.b); got != tt.want 
				t.Errorf("Add() = %v, want %v", got, tt.want)
			
		)
	


完成。接下来执行go test .就可以跑用例啦

其他参数说明:

$ gotests [options] PATH …
-all generate tests for all functions and methods

-excl regexp. generate tests for functions and methods that don’t match. Takes precedence over -only, -exported, and -all
-exported generate tests for exported functions and methods. Takes precedence over -only and -all
-i print test inputs in error messages
-only regexp. generate tests for functions and methods that match only.Takes precedence over -all
-nosubtests disable subtest generation when >= Go 1.7
-parallel enable parallel subtest generation when >= Go 1.7.
-w write output to (test) files instead of stdout
-template_dir Path to a directory containing custom test
code templates. Takes precedence over -template. This can also be set via environment variable GOTESTS_TEMPLATE_DIR
-template Specify custom test code templates, e.g. testify. This can also be set via environment variable GOTESTS_TEMPLATE
-template_params_file read external parameters to template by json
with file
-template_params read external parameters to template by json
with stdin

以上是关于gotests自动生成测试用例的主要内容,如果未能解决你的问题,请参考以下文章

go test执行多个文件夹下相同目录的用例

go test执行多个文件夹下相同目录的用例

go test 命令介绍

python - 接口自动化测试 - TestRecharge - 充值接口测试用例

go test使用记录

golang配置