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) (map[string]*ast.Module, storage.Store, error)

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

Types

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 Result

type Result struct {
	Location *ast.Location `json:"location"`
	Package  string        `json:"package"`
	Name     string        `json:"name"`
	Fail     *interface{}  `json:"fail,omitempty"`
	Error    error         `json:"error,omitempty"`
	Duration time.Duration `json:"duration"`
}

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 (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) 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) 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.5.13
Published
Dec 8, 2017
Platform
js/wasm
Imports
12 packages
Last checked
49 seconds ago

Tools for package owners.