testing-internals

Trace tests.cmd execution flow through Bazel to JUnit 5 and Vintage runners.

20.4k|6.0k|Updated Sep 30, 2011
One-click install
npx skills add https://github.com/JetBrains/intellij-community --skill testing-internals
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: testing-internals
Source: https://github.com/JetBrains/intellij-community/tree/main/.agents/skills/testing-internals
Command: npx skills add https://github.com/JetBrains/intellij-community --skill testing-internals

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Internals of tests.cmd execution flow, test discovery, and troubleshooting. Use when debugging test discovery issues or understanding the test runner.

Core Features & Use Cases

  • Explain the end-to-end flow from tests.cmd through Bazel targets to the test runners (JUnit 5 and legacy JUnit).
  • Provide troubleshooting guidance for common test-discovery and execution issues.
  • Clarify bucketing, classpath assembly, and post-discovery filtering to help diagnose failures.

Quick Start

Explain the internals of tests.cmd execution flow and how test discovery is orchestrated.

Frequently Asked Questions about testing-internals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does Bazel test discovery work with tests.cmd?

Bazel test discovery in tests.cmd works by invoking Bazel targets, discovering tests, and routing them to JUnit 5 and Vintage runners. The execution flow involves bucketing, classpath assembly, and post-discovery filtering to orchestrate test execution.

Why is JUnit 5 not discovering my legacy JUnit tests?

JUnit 5 test discovery for legacy tests requires the Vintage runner engine to route older JUnit tests correctly. If configuration properties like patterns or groups are misconfigured, post-discovery filtering may exclude legacy tests from the execution bucket.

How do I debug test discovery bottlenecks in Bazel?

Debugging test discovery bottlenecks in Bazel involves tracing execution paths from tests.cmd through Bazel targets to the test runners. You can identify bottlenecks by analyzing bucketing, classpath assembly, and post-discovery filtering stages.

What is the execution flow from tests.cmd to JUnit runners?

The execution flow from tests.cmd to JUnit runners starts with tests.cmd invoking Bazel targets, discovering tests, and routing them to JUnit 5 and legacy JUnit runners. It includes classpath assembly and post-discovery filtering to validate configuration properties.

Can I configure test bucketing and groups in tests.cmd?

Yes, tests.cmd supports configuring test bucketing, patterns, and groups. Validating these configuration properties is essential for diagnosing test discovery failures and ensuring tests are correctly routed to the appropriate JUnit runners.

Why are my Bazel test targets not being discovered?

Bazel test targets may not be discovered if tests.cmd encounters configuration issues in patterns or groups during the execution flow. Troubleshooting involves checking post-discovery filtering and classpath assembly to identify where the discovery process fails.