java_test
name
def name(
*,
name: str,
default_target_platform: None | str = ...,
target_compatible_with: list[str] = ...,
compatible_with: list[str] = ...,
exec_compatible_with: list[str] = ...,
visibility: list[str] = ...,
within_view: list[str] = ...,
metadata: OpaqueMetadata = ...,
tests: list[str] = ...,
modifiers: OpaqueMetadata = ...,
_apple_platforms: dict[str, str] = ...,
_build_only_native_code: bool = ...,
_exec_os_type: str = ...,
_inject_test_env: str = ...,
_is_building_android_binary: bool = ...,
_java_test_toolchain: str = ...,
_java_toolchain: str = ...,
_remote_test_execution_toolchain: str = ...,
_test_toolchain: str = ...,
abi_generation_mode: None | str = ...,
annotation_processor_deps: list[str] = ...,
annotation_processor_params: list[str] = ...,
annotation_processors: list[str] = ...,
contacts: list[str] = ...,
cxx_library_allowlist: list[str] = ...,
default_cxx_platform: None | str = ...,
default_host_platform: None | str = ...,
deps: list[str] = ...,
deps_query: None | str = ...,
env: dict[str, str] = ...,
exported_deps: list[str] = ...,
exported_provided_deps: list[str] = ...,
extra_arguments: list[str] = ...,
fork_mode: str = ...,
jar_postprocessor: None | str = ...,
java: None | str = ...,
java_agents: list[str] = ...,
java_version: None | str = ...,
javac: None | str = ...,
labels: list[str] = ...,
licenses: list[str] = ...,
manifest_file: None | str = ...,
maven_coords: None | str = ...,
never_mark_as_unused_dependency: None | bool = ...,
on_unused_dependencies: None | str = ...,
plugins: list[str | (str, list[str])] = ...,
proguard_config: None | str = ...,
provided_deps: list[str] = ...,
remote_execution: None | str | dict[str, None | bool | int | str | list[dict[str, str]] | dict[str, str | list[str]]] = ...,
remote_execution_action_key_providers: None | str = ...,
remove_classes: list[str] = ...,
required_for_source_only_abi: bool = ...,
resources: list[str] = ...,
resources_root: None | str = ...,
run_test_separately: bool = ...,
runner: None | str = ...,
runtime_deps: list[str] = ...,
source: None | str = ...,
source_abi_verification_mode: None | str = ...,
source_only_abi_deps: list[str] = ...,
specs: None | str = ...,
srcs: list[str] = ...,
std_err_log_level: None | int | str = ...,
std_out_log_level: None | int | str = ...,
target: None | str = ...,
test_case_timeout_ms: None | int = ...,
test_class_names_file: None | str = ...,
test_rule_timeout_ms: None | int = ...,
test_type: None | str = ...,
unbundled_resources_root: None | str = ...,
use_cxx_libraries: None | bool = ...,
use_dependency_order_classpath: None | bool = ...,
vm_args: list[str] = ...,
) -> None
A java_test()
rule is used to define a set of .java
files that contain tests to run via JUnit.
Parameters
-
name
: name of the target -
default_target_platform
: specifies the default target platform, used when no platforms are specified on the command line -
target_compatible_with
: a list of constraints that are required to be satisfied for this target to be compatible with a configuration -
compatible_with
: a list of constraints that are required to be satisfied for this target to be compatible with a configuration -
exec_compatible_with
: a list of constraints that are required to be satisfied for this target to be compatible with an execution platform -
visibility
: a list of visibility patterns restricting what targets can depend on this one -
within_view
: a list of visibility patterns restricting what this target can depend on -
metadata
: a key-value map of metadata associated with this target -
tests
: a list of targets that provide tests for this one -
modifiers
: an array of modifiers associated with this target -
cxx_library_allowlist
: List of cxx_library targets to build, if use_cxx_libraries is true. This can be useful if some dependencies are Android-only and won't build for the test host platform. -
deps
: Same asjava_library()
. // org.junit.rules.Timeout was not introduced until 4.7. Must include JUnit (version 4.7 or later) as a dependency for JUnit tests. Must include TestNG (version 6.2 or later) and hamcrest as a dependencies for TestNG tests. -
env
: A map of environment names and values to set when running the test. -
fork_mode
: Controls whether tests will all be run in the same process or a process will be started for each set of tests in a class.(This is mainly useful when porting Java tests to Buck from Apache Ant which allows JUnit tasks to set a
fork="yes"
property. It should not be used for new tests since it encourages tests to not cleanup after themselves and increases the tests' computational resources and running time.)none
All tests will run in the same process.per_test
A process will be started for each test class in which all tests of that test class will run. -
javac
: Specifies the Java compiler program to use for this rule. The value is a source path or an execution dep (e.g., //foo/bar:bar). Overrides the value in "javac" in the "tools" section of.buckconfig
. -
labels
: A list of labels to be applied to these tests. These labels are arbitrary text strings and have no meaning within buck itself. They can, however, have meaning for you as a test author (e.g.,smoke
orfast
). A label can be used to filter or include a specific test rule when executingbuck test
-
resources
: Same asjava_library()
. -
source
: Java language level for compiling. Corresponds to the-source
argument forjavac
. -
srcs
: Likejava_library()
, all of the.java
files specified by thesrcs
argument will be compiled when this rule is built. In addition, all of the corresponding.class
files that are built by this rule will be passed as arguments to JUnit when this rule is run as a test..class
files that are passed to JUnit that do not have any methods annotated with@Test
are considered failed tests, so make sure that only test case classes are specified assrcs
. This is frequently done by specifyingsrcs
asglob(['**/*Test.java'])
. -
std_err_log_level
: Same asstd_out_log_level
, but for std err. -
std_out_log_level
: Log level for messages from the source under test that buck will output to std out. Value must be a validjava.util.logging.Level
value. -
target
: Bytecode target level for compiling. Corresponds to the-target
argument forjavac
. -
test_rule_timeout_ms
: If set specifies the maximum amount of time (in milliseconds) in which all of the tests in this rule should complete. This overrides the defaultrule_timeout
if any has been specified in.buckconfig
. -
test_type
: Specifies which test framework to use. The currently supported options are 'junit' and 'testng'. -
use_cxx_libraries
: Whether or not to build and link againstcxx_library()
dependencies when testing. -
vm_args
: Runtime arguments to the JVM running the tests.