Documentation ¶
Overview ¶
Package tester contains utilities for executing Rego tests.
Index ¶
- Constants
- func Load(args []string, filter loader.Filter) (map[string]*ast.Module, storage.Store, error)
- func LoadBundles(args []string, filter loader.Filter) (map[string]*bundle.Bundle, error)
- type BenchmarkOptions
- type Builtin
- type JSONCoverageReporter
- type JSONReporter
- type PrettyReporter
- type Reporter
- type Result
- type Runner
- func (r *Runner) AddCustomBuiltins(builtinsList []*Builtin) *Runner
- func (r *Runner) CapturePrintOutput(yes bool) *Runner
- func (r *Runner) EnableTracing(yes bool) *Runner
- func (r *Runner) Filter(regex string) *Runner
- func (r *Runner) Run(ctx context.Context, modules map[string]*ast.Module) (ch chan *Result, err error)
- func (r *Runner) RunBenchmarks(ctx context.Context, txn storage.Transaction, options BenchmarkOptions) (ch chan *Result, err error)
- func (r *Runner) RunTests(ctx context.Context, txn storage.Transaction) (ch chan *Result, err error)
- func (r *Runner) SetBundles(bundles map[string]*bundle.Bundle) *Runner
- func (r *Runner) SetCompiler(compiler *ast.Compiler) *Runner
- func (r *Runner) SetCoverageQueryTracer(tracer topdown.QueryTracer) *Runner
- func (r *Runner) SetCoverageTracer(tracer topdown.Tracer) *Runner
- func (r *Runner) SetModules(modules map[string]*ast.Module) *Runner
- func (r *Runner) SetRuntime(term *ast.Term) *Runner
- func (r *Runner) SetStore(store storage.Store) *Runner
- func (r *Runner) SetTimeout(timout time.Duration) *Runner
- func (r *Runner) Target(target string) *Runner
Constants ¶
const SkipTestPrefix = "todo_test_"
SkipTestPrefix declares the prefix for tests that should be skipped.
const TestPrefix = "test_"
TestPrefix declares the prefix for all test rules.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BenchmarkOptions ¶ added in v0.37.13
type BenchmarkOptions struct {
ReportAllocations bool
}
BenchmarkOptions defines options specific to benchmarking tests
type JSONCoverageReporter ¶ added in v0.8.0
type JSONCoverageReporter struct { Cover *cover.Cover Modules map[string]*ast.Module Output io.Writer Threshold float64 }
JSONCoverageReporter reports coverage as a JSON structure.
func (JSONCoverageReporter) Report ¶ added in v0.8.0
func (r JSONCoverageReporter) Report(ch chan *Result) error
Report prints the test report to the reporter's output. If any tests fail or encounter errors, this function returns an error.
type JSONReporter ¶ added in v0.8.0
JSONReporter reports test results as array of JSON objects.
func (JSONReporter) Report ¶ added in v0.8.0
func (r JSONReporter) Report(ch chan *Result) error
Report prints the test report to the reporter's output.
type PrettyReporter ¶
type PrettyReporter struct { Output io.Writer Verbose bool FailureLine bool BenchmarkResults bool BenchMarkShowAllocations bool BenchMarkGoBenchFormat bool }
PrettyReporter reports test results in a simple human readable format.
func (PrettyReporter) Report ¶
func (r PrettyReporter) Report(ch chan *Result) error
Report prints the test report to the reporter's output.
type Reporter ¶ added in v0.8.0
type Reporter interface { // Report is called with a channel that will contain test results. Report(ch chan *Result) error }
Reporter defines the interface for reporting test results.
type Result ¶
type Result struct { Location *ast.Location `json:"location"` Package string `json:"package"` Name string `json:"name"` Fail bool `json:"fail,omitempty"` Error error `json:"error,omitempty"` Skip bool `json:"skip,omitempty"` Duration time.Duration `json:"duration"` Trace []*topdown.Event `json:"trace,omitempty"` Output []byte `json:"output,omitempty"` FailedAt *ast.Expr `json:"failed_at,omitempty"` BenchmarkResult *testing.BenchmarkResult `json:"benchmark_result,omitempty"` }
Result represents a single test case result.
func RunWithFilter ¶ added in v0.8.2
RunWithFilter executes all test cases found under files in path. The filter will be applied to exclude files that should not be included.
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner implements simple test discovery and execution.
func (*Runner) AddCustomBuiltins ¶ added in v0.37.13
func (*Runner) CapturePrintOutput ¶ added in v0.37.13
CapturePrintOutput captures print() call outputs during evaluation and includes the output in test results.
func (*Runner) EnableTracing ¶ added in v0.10.0
EnableTracing enables tracing of evaluation and includes traces in results. Tracing is currently mutually exclusive with coverage.
func (*Runner) Filter ¶ added in v0.37.13
Filter will set a test name regex filter for the test runner. Only test cases which match the filter will be run.
func (*Runner) Run ¶ added in v0.5.9
func (r *Runner) Run(ctx context.Context, modules map[string]*ast.Module) (ch chan *Result, err error)
Run executes all tests contained in supplied modules. Deprecated: Use RunTests and the Runner#SetModules or Runner#SetBundles helpers instead. This will NOT use the modules or bundles set on the Runner.
func (*Runner) RunBenchmarks ¶ added in v0.37.13
func (r *Runner) RunBenchmarks(ctx context.Context, txn storage.Transaction, options BenchmarkOptions) (ch chan *Result, err error)
RunBenchmarks executes tests similar to tester.Runner#RunTests but will repeat a number of times to get stable performance metrics.
func (*Runner) RunTests ¶ added in v0.14.0
func (r *Runner) RunTests(ctx context.Context, txn storage.Transaction) (ch chan *Result, err error)
RunTests executes tests found in either modules or bundles loaded on the runner.
func (*Runner) SetBundles ¶ added in v0.14.0
SetBundles will add bundles to the Runner which will be compiled then used for discovering and evaluating tests.
func (*Runner) SetCompiler ¶
SetCompiler sets the compiler used by the runner.
func (*Runner) SetCoverageQueryTracer ¶ added in v0.37.13
func (r *Runner) SetCoverageQueryTracer(tracer topdown.QueryTracer) *Runner
SetCoverageQueryTracer sets the tracer to use to compute coverage.
func (*Runner) SetCoverageTracer ¶ added in v0.10.0
SetCoverageTracer sets the tracer to use to compute coverage. Deprecated: Use SetCoverageQueryTracer instead.
func (*Runner) SetModules ¶ added in v0.14.0
SetModules will add modules to the Runner which will be compiled then used for discovering and evaluating tests.
func (*Runner) SetRuntime ¶ added in v0.10.0
SetRuntime sets runtime information to expose to the evaluation engine.
func (*Runner) SetTimeout ¶ added in v0.37.13
SetTimeout sets the timeout for the individual test cases