# testing

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/test/TestingModuleApi.java" %} {% dynamic setvar version "7.1.0" %} {% dynamic setvar original_path "/rules/lib/toplevel/testing" %} {% include "_buttons.html" %} Helper methods for Starlark to access testing infrastructure.

## Members

- analysis_test
- ExecutionInfo
- TestEnvironment

## analysis_test

    None testing.analysis_test(name, implementation, attrs={}, fragments=[], toolchains=[], attr_values={})

Creates a new analysis test target.

The number of transitive dependencies of the test are limited. The limit is controlled by `--analysis_testing_deps_limit` flag.

### Parameters

Parameter | Description
--- | ---
`name` | required Name of the target. It should be a Starlark identifier, matching pattern '[A-Za-z_][A-Za-z0-9_]*'.
`implementation` | required The Starlark function implementing this analysis test. It must have exactly one parameter: ctx. The function is called during the analysis phase. It can access the attributes declared by `attrs` and populated via `attr_values`. The implementation function may not register actions. Instead, it must register a pass/fail result via providing AnalysisTestResultInfo.
`attrs` | dict; default is `{}` Dictionary declaring the attributes. See the rule call. Attributes are allowed to use configuration transitions defined using analysis_test_transition.
`fragments` | sequence of strings; default is `[]` List of configuration fragments that are available to the implementation of the analysis test.
`toolchains` | sequence; default is `[]` The set of toolchains the test requires. See the rule call.
`attr_values` | dict of strings; default is `{}` Dictionary of attribute values to pass to the implementation.

## ExecutionInfo

    ExecutionInfo testing.ExecutionInfo(requirements={}, exec_group='test')

testing.ExecutionInfo provider key/constructor

## TestEnvironment

    RunEnvironmentInfo testing.TestEnvironment(environment, inherited_environment=[])

Deprecated: Use RunEnvironmentInfo instead. Creates a new test environment provider. Use this provider to specify extra environment variables to be made available during test execution.

### Parameters

Parameter | Description
--- | ---
`environment` | required A map of string keys and values that represent environment variables and their values. These will be made available during the test execution.
`inherited_environment` | sequence of strings; default is `[]` A sequence of names of environment variables. These variables are made available during the test execution with their current value taken from the shell environment. If a variable is contained in both `environment` and `inherited_environment`, the value inherited from the shell environment will take precedence if set.