package tester

import "github.com/open-policy-agent/opa/tester"

Package tester contains utilities for executing Rego tests.

Index

Constants

const TestPrefix = "test_"

TestPrefix declares the prefix for all rules.

Functions

func Load

func Load(args []string, filter loader.Filter) (map[string]*ast.Module, storage.Store, error)

Load returns modules and an in-memory store for running tests.

Types

type JSONCoverageReporter

type JSONCoverageReporter struct {
	Cover   *cover.Cover
	Modules map[string]*ast.Module
	Output  io.Writer
}

JSONCoverageReporter reports coverage as a JSON structure.

func (JSONCoverageReporter) Report

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

type JSONReporter struct {
	Output io.Writer
}

JSONReporter reports test results as array of JSON objects.

func (JSONReporter) Report

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
}

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

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"`
	Duration time.Duration    `json:"duration"`
	Trace    []*topdown.Event `json:"trace,omitempty"`
}

Result represents a single test case result.

func Run

func Run(ctx context.Context, paths ...string) ([]*Result, error)

Run executes all test cases found under files in path.

func RunWithFilter

func RunWithFilter(ctx context.Context, filter loader.Filter, paths ...string) ([]*Result, error)

RunWithFilter executes all test cases found under files in path. The filter will be applied to exclude files that should not be included.

func (Result) Pass

func (r Result) Pass() bool

Pass returns true if the test case passed.

func (*Result) String

func (r *Result) String() string

type Runner

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

Runner implements simple test discovery and execution.

func NewRunner

func NewRunner() *Runner

NewRunner returns a new runner.

func (*Runner) EnableTracing

func (r *Runner) EnableTracing(yes bool) *Runner

EnableTracing enables tracing of evaluatation and includes traces in results. Tracing is currently mutually exclusive with coverage.

func (*Runner) Run

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.

func (*Runner) SetCompiler

func (r *Runner) SetCompiler(compiler *ast.Compiler) *Runner

SetCompiler sets the compiler used by the runner.

func (*Runner) SetCoverageTracer

func (r *Runner) SetCoverageTracer(tracer topdown.Tracer) *Runner

SetCoverageTracer sets the tracer to use to compute coverage.

func (*Runner) SetRuntime

func (r *Runner) SetRuntime(term *ast.Term) *Runner

SetRuntime sets runtime information to expose to the evaluation engine.

func (*Runner) SetStore

func (r *Runner) SetStore(store storage.Store) *Runner

SetStore sets the store to execute tests over.

Source Files

reporter.go runner.go

Version
v0.10.1
Published
Oct 30, 2018
Platform
windows/amd64
Imports
15 packages
Last checked
1 second ago

Tools for package owners.