testutil

package
v2.32.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2022 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CharSetAlphaNum アフファベット(小文字)+数値
	CharSetAlphaNum = "abcdefghijklmnopqrstuvwxyz012346789"

	// CharSetAlpha アフファベット(小文字)
	CharSetAlpha = "abcdefghijklmnopqrstuvwxyz"

	// CharSetNumber 数値
	CharSetNumber = "012346789"
)
View Source
const TestResourcePrefix = "libsacloud-test-"

TestResourcePrefix テスト時に作成するリソースの名称に付与するプレフィックス

このプレフィックスを持つリソースは受入テスト実行後に削除される

Variables

View Source
var CleanupTargets = struct {
	Archive           CleanupTarget
	AutoBackup        CleanupTarget
	Bridge            CleanupTarget
	ContainerRegistry CleanupTarget
	CDROM             CleanupTarget
	Database          CleanupTarget
	Disk              CleanupTarget
	DNS               CleanupTarget
	GSLB              CleanupTarget
	Icon              CleanupTarget
	Internet          CleanupTarget
	License           CleanupTarget
	LoadBalancer      CleanupTarget
	MobileGateway     CleanupTarget
	NFS               CleanupTarget
	Note              CleanupTarget
	PacketFilter      CleanupTarget
	PrivateHost       CleanupTarget
	ProxyLB           CleanupTarget
	Server            CleanupTarget
	SIM               CleanupTarget
	SimpleMonitor     CleanupTarget
	SSHKey            CleanupTarget
	Switch            CleanupTarget
	VPCRouter         CleanupTarget
}{
	Archive:           CleanupTarget{/* contains filtered or unexported fields */},
	AutoBackup:        CleanupTarget{/* contains filtered or unexported fields */},
	Bridge:            CleanupTarget{/* contains filtered or unexported fields */},
	ContainerRegistry: CleanupTarget{/* contains filtered or unexported fields */},
	CDROM:             CleanupTarget{/* contains filtered or unexported fields */},
	Database:          CleanupTarget{/* contains filtered or unexported fields */},
	Disk:              CleanupTarget{/* contains filtered or unexported fields */},
	DNS:               CleanupTarget{/* contains filtered or unexported fields */},
	GSLB:              CleanupTarget{/* contains filtered or unexported fields */},
	Icon:              CleanupTarget{/* contains filtered or unexported fields */},
	Internet:          CleanupTarget{/* contains filtered or unexported fields */},
	License:           CleanupTarget{/* contains filtered or unexported fields */},
	LoadBalancer:      CleanupTarget{/* contains filtered or unexported fields */},
	MobileGateway:     CleanupTarget{/* contains filtered or unexported fields */},
	NFS:               CleanupTarget{/* contains filtered or unexported fields */},
	Note:              CleanupTarget{/* contains filtered or unexported fields */},
	PacketFilter:      CleanupTarget{/* contains filtered or unexported fields */},
	PrivateHost:       CleanupTarget{/* contains filtered or unexported fields */},
	ProxyLB:           CleanupTarget{/* contains filtered or unexported fields */},
	Server:            CleanupTarget{/* contains filtered or unexported fields */},
	SIM:               CleanupTarget{/* contains filtered or unexported fields */},
	SimpleMonitor:     CleanupTarget{/* contains filtered or unexported fields */},
	SSHKey:            CleanupTarget{/* contains filtered or unexported fields */},
	Switch:            CleanupTarget{/* contains filtered or unexported fields */},
	VPCRouter:         CleanupTarget{/* contains filtered or unexported fields */},
}

CleanupTargets クリーンアップ対象のリソース。CleanupResourceに渡す

Functions

func AssertEmpty

func AssertEmpty(t TestT, object interface{}, targetName string) error

AssertEmpty emptyチェック

func AssertEmptyFunc

func AssertEmptyFunc(t TestT, object interface{}, targetName string) func() error

AssertEmptyFunc emptyチェック

func AssertEqual

func AssertEqual(t TestT, expected interface{}, actual interface{}, targetName string) error

AssertEqual 値の比較

func AssertEqualFunc

func AssertEqualFunc(t TestT, expected interface{}, actual interface{}, targetName string) func() error

AssertEqualFunc 値の比較

func AssertEqualWithExpected

func AssertEqualWithExpected(testExpect *CRUDTestExpect) func(TestT, *CRUDTestContext, interface{}) error

AssertEqualWithExpected 項目ごとに除外設定のできる期待値との比較

func AssertFalse

func AssertFalse(t TestT, value bool, targetName string) error

AssertFalse falseチェック

func AssertFalseFunc

func AssertFalseFunc(t TestT, value bool, targetName string) func() error

AssertFalseFunc falseチェック

func AssertLen

func AssertLen(t TestT, object interface{}, length int, targetName string) error

AssertLen lengthのチェック

func AssertLenFunc

func AssertLenFunc(t TestT, object interface{}, length int, targetName string) func() error

AssertLenFunc lengthのチェック

func AssertNil

func AssertNil(t TestT, object interface{}, targetName string) error

AssertNil nilチェック

func AssertNilFunc

func AssertNilFunc(t TestT, object interface{}, targetName string) func() error

AssertNilFunc nilチェック

func AssertNotEmpty

func AssertNotEmpty(t TestT, object interface{}, targetName string) error

AssertNotEmpty not emptyチェック

func AssertNotEmptyFunc

func AssertNotEmptyFunc(t TestT, object interface{}, targetName string) func() error

AssertNotEmptyFunc not emptyチェック

func AssertNotNil

func AssertNotNil(t TestT, object interface{}, targetName string) error

AssertNotNil not nilチェック

func AssertNotNilFunc

func AssertNotNilFunc(t TestT, object interface{}, targetName string) func() error

AssertNotNilFunc not nilチェック

func AssertTrue

func AssertTrue(t TestT, value bool, targetName string) error

AssertTrue trueチェック

func AssertTrueFunc

func AssertTrueFunc(t TestT, value bool, targetName string) func() error

AssertTrueFunc trueチェック

func CleanupResource added in v2.8.0

func CleanupResource(ctx context.Context, caller sacloud.APICaller, prefix string, target CleanupTarget) error

func CleanupTestResources

func CleanupTestResources(ctx context.Context, caller sacloud.APICaller) error

CleanupTestResources 指定プレフィックスを持つリソースの削除を行う

TESTACC環境変数が設定されている場合のみ実施される

func ComposeCleanupFuncs added in v2.8.0

func ComposeCleanupFuncs(funcs ...func(context.Context, sacloud.APICaller) error) func(context.Context, sacloud.APICaller) error

func ComposeCleanupResourceFunc added in v2.8.0

func ComposeCleanupResourceFunc(prefix string, targets ...CleanupTarget) func(context.Context, sacloud.APICaller) error

func DoAsserts

func DoAsserts(funcs ...func() error) error

DoAsserts アサーションを複数適用、最初のエラーを返す

func IsAccTest

func IsAccTest() bool

IsAccTest TESTACC環境変数が指定されているか

func IsEnableAPITrace

func IsEnableAPITrace() bool

IsEnableAPITrace SAKURACLOUD_TRACE_API環境変数が指定されているか

func IsEnableHTTPTrace

func IsEnableHTTPTrace() bool

IsEnableHTTPTrace SAKURACLOUD_TRACE_HTTP環境変数が指定されているか

func IsEnableTrace

func IsEnableTrace() bool

IsEnableTrace SAKURACLOUD_TRACE環境変数が指定されているか

func PreCheckEnvsFunc

func PreCheckEnvsFunc(envs ...string) func(TestT)

PreCheckEnvsFunc 指定の環境変数が指定されていなかった場合にテストをスキップするためのFuncを返す

func RandomName

func RandomName(strlen int, charSet string) string

RandomName ランダムな文字列を生成して返す

func RandomPrefix added in v2.8.0

func RandomPrefix() string

RandomPrefix テスト時に作成するリソースに付与するランダムなプレフィックスを生成する

func ResourceName

func ResourceName(name string) string

ResourceName テスト時に作成するリソースの名称

func RunCRUD added in v2.8.0

func RunCRUD(t TestT, testCase *CRUDTestCase)

RunCRUD 任意の条件でCRUD操作をテストする

func RunResource added in v2.8.0

func RunResource(t TestT, testCase *ResourceTestCase)

func SingletonAPICaller

func SingletonAPICaller() sacloud.APICaller

SingletonAPICaller 環境変数からシングルトンAPICallerを作成する

func TestZone

func TestZone() string

TestZone SAKURACLOUD_ZONE環境変数からテスト対象のゾーンを取得 デフォルトはtk1v

func WithRandomPrefix added in v2.8.0

func WithRandomPrefix(name string) string

WithRandomPrefix ランダムなプレフィックスをつけて返す

Types

type CRUDTestCase

type CRUDTestCase struct {
	// PreCheck テスト実行 or スキップを判定するためのFunc
	PreCheck func(TestT)

	// APICallerのセットアップ用Func、テストケースごとに1回呼ばれる
	SetupAPICallerFunc func() sacloud.APICaller

	// Setup テスト前の準備(依存リソースの作成など)を行うためのFunc(省略可)
	Setup func(*CRUDTestContext, sacloud.APICaller) error

	// Create Create操作のテスト用Func(省略可)
	Create *CRUDTestFunc

	// Read Read操作のテスト用Func(必須)
	Read *CRUDTestFunc

	// Updates Update操作のテスト用Func(省略可)
	Updates []*CRUDTestFunc

	// Shutdown Delete操作の前のシャットダウン(省略可)
	Shutdown func(*CRUDTestContext, sacloud.APICaller) error

	// Delete Delete操作のテスト用Func(省略可)
	Delete *CRUDTestDeleteFunc

	// Cleanup APIで作成/変更したリソースなどのクリーンアップ用Func(省略化)
	Cleanup func(*CRUDTestContext, sacloud.APICaller) error

	// Parallel t.Parallelを呼ぶかのフラグ
	Parallel bool

	// IgnoreStartupWait リソース作成後の起動待ちを行わない
	IgnoreStartupWait bool
}

CRUDTestCase CRUD操作テストケース

type CRUDTestContext

type CRUDTestContext struct {
	// ID CRUDテスト対象リソースのID
	//
	// Create/Read/Updateの戻り値がidAccessorの場合に各操作の後で設定される
	ID types.ID

	// Values 一連のテスト中に共有したい値
	//
	// 依存リソースのIDの保持などで利用する
	Values map[string]interface{}

	// LastValue 最後の操作での戻り値
	LastValue interface{}
	// contains filtered or unexported fields
}

CRUDTestContext CRUD操作テストでのコンテキスト、一連のテスト中に共有される

func (*CRUDTestContext) Deadline

func (c *CRUDTestContext) Deadline() (deadline time.Time, ok bool)

Deadline context.Context実装

func (*CRUDTestContext) Done

func (c *CRUDTestContext) Done() <-chan struct{}

Done context.Context実装

func (*CRUDTestContext) Err

func (c *CRUDTestContext) Err() error

Err context.Context実装

func (*CRUDTestContext) Value

func (c *CRUDTestContext) Value(key interface{}) interface{}

Value context.Context実装

type CRUDTestDeleteFunc

type CRUDTestDeleteFunc struct {
	// Func API操作を行うFunc
	Func func(*CRUDTestContext, sacloud.APICaller) error
}

CRUDTestDeleteFunc CRUD操作テストのDeleteテスト用Func

type CRUDTestExpect

type CRUDTestExpect struct {
	// ExpectValue CRUD操作実行後の期待値
	ExpectValue interface{}

	// IgnoreFields比較時に無視する項目
	IgnoreFields []string
}

CRUDTestExpect CRUD操作(DELETE以外)テストでの期待値

func (*CRUDTestExpect) Prepare

func (c *CRUDTestExpect) Prepare(actual interface{}) (interface{}, interface{})

Prepare テスト対象値を受け取り、比較可能な状態に加工した対象値と期待値を返す

type CRUDTestFunc

type CRUDTestFunc struct {
	// Func API操作を行うFunc
	Func func(*CRUDTestContext, sacloud.APICaller) (interface{}, error)

	// CheckFunc 任意のチェックを行うためのFunc、省略可能。
	CheckFunc func(TestT, *CRUDTestContext, interface{}) error

	// SkipExtractID Trueの場合Funcの戻り値からのID抽出(ioAddessor経由)を行わない
	SkipExtractID bool
}

CRUDTestFunc CRUD操作(DELETE以外)テストでのテスト用Func

type CleanupTarget added in v2.8.0

type CleanupTarget struct {
	// contains filtered or unexported fields
}

type ResourceTestCase added in v2.8.0

type ResourceTestCase struct {
	// PreCheck テスト実行 or スキップを判定するためのFunc
	PreCheck func(TestT)

	// APICallerのセットアップ用Func、テストケースごとに1回呼ばれる
	SetupAPICallerFunc func() sacloud.APICaller

	// Setup テスト前の準備(依存リソースの作成など)を行うためのFunc(省略可)
	Setup func(context.Context, sacloud.APICaller) error

	Tests []ResourceTestFunc

	// Cleanup APIで作成/変更したリソースなどのクリーンアップ用Func(省略化)
	Cleanup func(context.Context, sacloud.APICaller) error

	// Parallel t.Parallelを呼ぶかのフラグ
	Parallel bool

	Timeout time.Duration
}

type ResourceTestFunc added in v2.8.0

type ResourceTestFunc func(ctx context.Context, caller sacloud.APICaller) error

type TestT

type TestT interface {
	Log(args ...interface{})
	Logf(format string, args ...interface{})
	Error(args ...interface{})
	Errorf(format string, args ...interface{})
	FailNow()
	Fatal(args ...interface{})
	Skip(args ...interface{})
	Skipf(format string, args ...interface{})
	Name() string
	Parallel()
}

TestT テストのライフサイクルを管理するためのインターフェース.

通常は*testing.Tを実装として利用する

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL