package ktesting
import "k8s.io/klog/v2/ktesting"
Package testinglogger contains an implementation of the logr interface which is logging through a function like testing.TB.Log function. Therefore it can be used in standard Go tests and Gingko test suites to ensure that output is associated with the currently running test.
Serialization of the structured log parameters is done in the same way as for klog.InfoS.
Experimental
Notice: This package is EXPERIMENTAL and may be changed or removed in a later release.
Index ¶
- Variables
- func NewLogger(t TL, c *Config) logr.Logger
- func NewTestContext(tl TL) (logr.Logger, context.Context)
- type Config
- type ConfigOption
- func VModuleFlagName(name string) ConfigOption
- func Verbosity(level int) ConfigOption
- func VerbosityFlagName(name string) ConfigOption
- type TL
Variables ¶
var DefaultConfig = NewConfig()
DefaultConfig is the global default logging configuration for a unit test. It is used by NewTestContext and k8s.io/klogr/testing/init.
Experimental
Notice: This variable is EXPERIMENTAL and may be changed or removed in a later release.
Functions ¶
func NewLogger ¶
NewLogger constructs a new logger for the given test interface.
Experimental
Notice: This type is EXPERIMENTAL and may be changed or removed in a later release.
func NewTestContext ¶
NewTestContext returns a logger and context for use in a unit test case or benchmark. The tl parameter can be a testing.T or testing.B pointer that will receive all log output. Importing k8s.io/klogr/testing/init will add command line flags that modify the configuration of that log output.
Experimental
Notice: This function is EXPERIMENTAL and may be changed or removed in a later release.
Types ¶
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config influences logging in a test logger. To make this configurable via command line flags, instantiate this once per program and use AddFlags to bind command line flags to the instance before passing it to NewTestContext.
Must be constructed with NewConfig.
Experimental
Notice: This type is EXPERIMENTAL and may be changed or removed in a later release.
func NewConfig ¶
func NewConfig(opts ...ConfigOption) *Config
NewConfig returns a configuration with recommended defaults and optional modifications. Command line flags are not bound to any FlagSet yet.
Experimental
Notice: This function is EXPERIMENTAL and may be changed or removed in a later release.
func (*Config) AddFlags ¶
AddFlags registers the command line flags that control the configuration.
Experimental
Notice: This function is EXPERIMENTAL and may be changed or removed in a later release.
type ConfigOption ¶
type ConfigOption func(co *configOptions)
ConfigOption implements functional parameters for NewConfig.
Experimental
Notice: This type is EXPERIMENTAL and may be changed or removed in a later release.
func VModuleFlagName ¶
func VModuleFlagName(name string) ConfigOption
VModulFlagName overrides the default -testing.vmodule for the per-module verbosity levels.
Experimental
Notice: This function is EXPERIMENTAL and may be changed or removed in a later release.
func Verbosity ¶
func Verbosity(level int) ConfigOption
Verbosity overrides the default verbosity level of 5. That default is higher than in klog itself because it enables logging entries for "the steps leading up to errors and warnings" and "troubleshooting" (see https://github.com/kubernetes/community/blob/9406b4352fe2d5810cb21cc3cb059ce5886de157/contributors/devel/sig-instrumentation/logging.md#logging-conventions), which is useful when debugging a failed test. `go test` only shows the log output for failed tests. To see all output, use `go test -v`.
Experimental
Notice: This function is EXPERIMENTAL and may be changed or removed in a later release.
func VerbosityFlagName ¶
func VerbosityFlagName(name string) ConfigOption
VerbosityFlagName overrides the default -testing.v for the verbosity level.
Experimental
Notice: This function is EXPERIMENTAL and may be changed or removed in a later release.
type TL ¶
type TL interface { Helper() Log(args ...interface{}) }
TL is the relevant subset of testing.TB.
Experimental
Notice: This type is EXPERIMENTAL and may be changed or removed in a later release.
Source Files ¶
options.go setup.go testinglogger.go
Directories ¶
Path | Synopsis |
---|---|
ktesting/example | |
ktesting/init | Package init registers the command line flags for k8s.io/klogr/testing in the flag.CommandLine. |
- Version
- v2.60.1
- Published
- Mar 20, 2022
- Platform
- linux/amd64
- Imports
- 7 packages
- Last checked
- 6 hours ago –
Tools for package owners.