test
Run unit tests, integration tests, or slow integration tests matching CI. Use to validate changes before submitting a PR.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-11
- Stars
- ★ 2.5w
- Forks
- 6.6k
01 前言 Front Matter
- name
- test
- description
- Run unit tests, integration tests, or slow integration tests matching CI. Use to validate changes before submitting a PR.
- argument-hint
- [unit|integration|slow|module-name]
03 SKILL.md 正文
Tests
Run tests matching CI configuration.
Commands by argument
unit or no argument — unit tests
./mvnw clean test -q -B -D"checkstyle.skip"
CI runs this on:
- JDK 11: ubuntu, macOS, Windows
- JDK 17, 21, 25: ubuntu only
integration — integration tests (excludes slow)
./mvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -DexcludedGroups=slow
CI runs this on JDK 11, 17, 21, 25 (ubuntu only).
slow — slow integration tests
./mvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true \
-Dit.test=org.apache.skywalking.library.elasticsearch.ElasticSearchIT \
-Dfailsafe.failIfNoSpecifiedTests=false
CI runs on JDK 11 (ubuntu only). Currently only ElasticSearch/OpenSearch IT is in the slow matrix.
Module name — single module tests
# Unit tests for a specific module
./mvnw clean test -pl oap-server/analyzer/<module-name> -D"checkstyle.skip"
# Integration tests for a specific module
./mvnw -B clean integration-test -pl oap-server/analyzer/<module-name> -Dcheckstyle.skip -DskipUTs=true
Test frameworks
- JUnit 5 (
org.junit.jupiter) - Mockito for mocking
- AssertJ for assertions
- PowerMock for reflection utilities
Test naming conventions
| Type | Pattern | Maven phase |
|---|---|---|
| Unit tests | *Test.java |
test |
| Integration tests | IT*.java or *IT.java |
integration-test |
Slow test tagging
Tests tagged with @Tag("slow") are excluded from the normal integration-test job and run separately in the slow-integration-test job. Use this tag for tests that spin up external services (Elasticsearch, etc.) and take significant time.
CI retry behavior
All three CI jobs retry on failure (run the same command twice with ||). This handles flaky tests but masks intermittent issues — if a test fails locally, investigate rather than relying on retries.
CI reference
CI workflow: .github/workflows/skywalking.yaml
| Job | JDK | OS | Timeout |
|---|---|---|---|
unit-test |
11 (3 OS) + 17, 21, 25 (ubuntu) | ubuntu, macOS, Windows | 30 min |
integration-test |
11, 17, 21, 25 | ubuntu | 60 min |
slow-integration-test |
11 | ubuntu | 60 min |
04 同仓库更多 Skills
run-e2e
Run SkyWalking E2E tests locally
package
Rebuild the SkyWalking distribution and OAP Docker image after source changes. Use before running e2e tests so the image reflects your code changes. Avoids the "image looks updated but runtime has stale jars" trap.
new-monitoring-feature
Add a new monitoring target / layer to SkyWalking OAP. Orients you to the OAL / MAL / LAL / TAL / SpanListener extension points, the UI template + submodule touchpoints, the docs set that must move together, and the cross-cutting traps that don't live in any one skill.
license
Check and fix Apache 2.0 license headers and dependency licenses using skywalking-eyes. Use before submitting a PR.
gh-pull-request
Verify, commit, and push changes on a PR branch. Runs pre-flight checks (compile, checkstyle, license headers) before every push. Also creates the PR if one doesn't exist yet.
generate-classes
Generate bytecode classes from DSL scripts (MAL, OAL, LAL, Hierarchy). Runs the compiler and dumps .class files for inspection.