test

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
Weekly Installs
1
GitHub Stars
24.7K
First Seen
3 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1