linttest

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2021 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

Package linttest provides linter testing utilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindPHPFiles added in v0.3.0

func FindPHPFiles(root string) ([]string, error)

func InitEmbeddedRules added in v0.3.0

func InitEmbeddedRules(config *linter.Config) error

InitEmbeddedRules initializes embedded rules for testing.

func ParseTestFile

func ParseTestFile(t testing.TB, l *linter.Linter, filename, content string) linter.ParseResult

func PrepareGoldenTestSuite added in v0.3.0

func PrepareGoldenTestSuite(s *GoldenTestSuite, t *testing.T, l *linter.Linter, baseDir, goldenFileName string)

PrepareGoldenTestSuite configures fields and standard stubs.

Used if the structure was created directly.

func RunFilterMatch added in v0.3.0

func RunFilterMatch(test *Suite, names ...string)

RunFilterMatch calls Match with the filtered results of RunLinter.

func RunInlineTest added in v0.4.0

func RunInlineTest(t *testing.T, dir string)

func SimpleNegativeTest

func SimpleNegativeTest(t *testing.T, contents string)

SimpleNegativeTest runs linter over a single file out of given content and expects there to be no warnings.

For positive testing, use Suite type directly.

Types

type CommandE2ETestSuite added in v0.4.0

type CommandE2ETestSuite struct {
	Name string
	Args []string
	// contains filtered or unexported fields
}

type GoldenE2ETestSuite added in v0.3.0

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

func NewGoldenE2ETestSuite added in v0.3.0

func NewGoldenE2ETestSuite(t *testing.T) *GoldenE2ETestSuite

func (*GoldenE2ETestSuite) BuildNoVerify added in v0.3.0

func (s *GoldenE2ETestSuite) BuildNoVerify()

func (*GoldenE2ETestSuite) RegisterCommandTest added in v0.4.0

func (s *GoldenE2ETestSuite) RegisterCommandTest(suite *CommandE2ETestSuite)

func (*GoldenE2ETestSuite) RegisterTest added in v0.4.0

func (s *GoldenE2ETestSuite) RegisterTest(test *GoldenTestSuite)

func (*GoldenE2ETestSuite) RemoveNoVerify added in v0.3.0

func (s *GoldenE2ETestSuite) RemoveNoVerify()

func (*GoldenE2ETestSuite) RemoveTestsFiles added in v0.3.0

func (s *GoldenE2ETestSuite) RemoveTestsFiles()

func (*GoldenE2ETestSuite) Run added in v0.3.0

func (s *GoldenE2ETestSuite) Run()

func (*GoldenE2ETestSuite) RunCommandsTest added in v0.4.0

func (s *GoldenE2ETestSuite) RunCommandsTest()

func (*GoldenE2ETestSuite) RunOnlyTests added in v0.3.0

func (s *GoldenE2ETestSuite) RunOnlyTests()

type GoldenTestSuite added in v0.3.0

type GoldenTestSuite struct {
	Name    string
	Deps    []string
	Disable []string

	OnlyE2E   bool
	Gitignore bool
	Baseline  bool

	SrcDir         string
	BaseDir        string
	GoldenFileName string
	// contains filtered or unexported fields
}

func NewGoldenTestSuite added in v0.3.0

func NewGoldenTestSuite(t *testing.T, name, baseDir, goldenFileName string) *GoldenTestSuite

NewGoldenTestSuite returns a new golden test suite for t.

func (*GoldenTestSuite) AddDeps added in v0.3.0

func (s *GoldenTestSuite) AddDeps(deps []string)

func (*GoldenTestSuite) AddDisabled added in v0.3.0

func (s *GoldenTestSuite) AddDisabled(disabled []string)

func (*GoldenTestSuite) Run added in v0.3.0

func (s *GoldenTestSuite) Run()

type RunResult added in v0.4.0

type RunResult struct {
	Reports []*linter.Report
	Info    *meta.Info
}

func CheckFile added in v0.4.0

func CheckFile(t *testing.T, contents string) RunResult

CheckFile runs linter over a single file out of given content and returns all reports that were found.

type Suite

type Suite struct {
	Files  []TestFile
	Expect []string

	RuleFile string

	AllowDisable *regexp.Regexp
	MisspellList string

	LoadStubs []string
	// contains filtered or unexported fields
}

Suite is a configurable test runner for linter.

Use NewSuite to create usable instance.

func NewPHP7Suite added in v0.4.0

func NewPHP7Suite(t testing.TB) *Suite

NewPHP7Suite returns a new linter test suite for t with PHP 7.4.

func NewSuite

func NewSuite(t testing.TB) *Suite

NewSuite returns a new linter test suite for t with PHP 8.1.

func (*Suite) AddFile

func (s *Suite) AddFile(contents string)

AddFile adds a file to a suite file list. File gets an auto-generated name. If custom name is important, use AddNamedFile.

func (*Suite) AddNamedFile added in v0.3.0

func (s *Suite) AddNamedFile(name, contents string)

AddNamedFile adds a file with a specific name to a suite file list.

func (*Suite) AddNolintFile

func (s *Suite) AddNolintFile(contents string)

AddNolintFile adds a file to a suite file list that will be parsed, but not linted. File gets an auto-generated name. If custom name is important, append a properly initialized TestFile to a s Files slice directly.

func (*Suite) Config added in v0.4.0

func (s *Suite) Config() *linter.Config

func (*Suite) IgnoreUndeclaredChecks added in v0.3.0

func (s *Suite) IgnoreUndeclaredChecks()

func (*Suite) Linter added in v0.4.0

func (s *Suite) Linter() *linter.Linter

func (*Suite) Match

func (s *Suite) Match(reports []*linter.Report)

Match tries to match every report against Expect list of s.

If expect slice is nil or empty, only nil (or empty) reports slice would match it.

func (*Suite) ReadAndAddFiles added in v0.3.0

func (s *Suite) ReadAndAddFiles(files []string)

ReadAndAddFiles read and adds a files to a suite file list.

func (*Suite) RunAndMatch

func (s *Suite) RunAndMatch()

RunAndMatch calls Match with the results of RunLinter.

This is a recommended way to use the Suite, but if reports slice is needed, one can use RunLinter directly.

func (*Suite) RunFilterLinter added in v0.3.0

func (s *Suite) RunFilterLinter(filters []string) []*linter.Report

RunFilterLinter calls RunLinter with the filter.

func (*Suite) RunLinter

func (s *Suite) RunLinter() RunResult

RunLinter executes linter over s Files and returns all issue reports that were produced during that.

func (*Suite) RunRulesTest added in v0.4.0

func (s *Suite) RunRulesTest()

RunRulesTest starts testing using a file with the rules specified in RuleFile.

func (*Suite) UseConfig added in v0.4.0

func (s *Suite) UseConfig(config *linter.Config)

func (*Suite) UseLinter added in v0.4.0

func (s *Suite) UseLinter(lint *linter.Linter)

type TestFile

type TestFile struct {
	Name string

	// Data is a file contents.
	Data []byte

	// Nolint marks file as one that ignores all warnings.
	// Can be used to define builtins, for example.
	Nolint bool
}

TestFile describes a file to be tested.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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