本文へ移動
cccskills
無料GitHub で公開

testing-standards

Testing standards for LoongCollector: unit tests, e2e tests, benchmarks. Reference when writing or reviewing tests.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

LoongCollector Testing Standards

Test Categories

1. Unit Tests (C++)

  • Use Google Test (GTest) / Google Mock
  • Place in core/unittest/
  • Cover success and failure paths
  • Core logic must have 100% coverage
  • Test boundary conditions explicitly
  • Test naming: accurately describe behavior being tested
  • Each core/unittest/*/ directory produces one executable
  • Build and run tests from inside build/ to ensure relative paths and temp files work correctly
  • See skills/compile/SKILL.md for build & run instructions

2. Unit Tests (Go)

  • Use standard testing package
  • Table-driven tests for function coverage
  • Integration tests via E2E framework

3. E2E Tests

  • BDD Godog framework
  • Configuration-driven via .feature files
  • See skills/e2e/SKILL.md for complete guide (design → write → run → debug)

4. Benchmarks

  • Required for performance-sensitive code paths
  • Compare against baseline versions
  • Measure throughput, latency, CPU/Memory usage

E2E Test Quick Reference

Feature File Structure

@input
Feature: input file
  Test input file

  @e2e @host
  Scenario: TestInputFileWithRegexSingle
    Given {host} environment
    Given subcribe data from {sls} with config
    """
    enable: true
    inputs:
      - Type: input_file
    """
    When generate {100} regex logs to file {/tmp/loongcollector/regex_single.log}, with interval {100}ms
    Then there is {100} logs

Behavior Types

TypePurpose
GivenSetup/prepare test conditions
WhenTrigger test actions (e.g., log generation)
ThenVerify test results

Environment Tags

  • @host - Host environment
  • @k8s - Kubernetes environment
  • @docker-compose - Docker Compose environment
  • @e2e - E2E test marker
  • @regression - Regression test marker

Adding New Test Behaviors

  1. Write the Go function in the appropriate directory:
    • cleanup/ - Post-test cleanup (auto-executed)
    • control/ - Control operations (init, config)
    • setup/ - Environment setup
    • trigger/ - Data generation
    • verify/ - Result verification
  2. Function signature: func Name(ctx context.Context, params...) (context.Context, error)
  3. Register in test/e2e_enterprise/main_test.go via scenarioInitializer
  4. Use in feature files with {param} syntax

Strict Rules

  • Do NOT change behavior of the method being tested
  • Do NOT modify existing test behaviors in engine
  • Always start trigger When begin trigger BEFORE generating logs
  • Only use registered behaviors from test/engine/steps.go
  • Verify behavior type matches (Given/When/Then)

Test Naming

  • Format: Test${FunctionName}${CaseBriefDescription}
  • Examples: TestInputFileWithBlackListDir, TestInputFileWithRegexSingle
  • Must include @e2e and environment tags

Benchmark Testing

For performance-sensitive code:

  1. Provide baseline comparison
  2. Measure: throughput, latency, CPU profile, memory profile
  3. Run under realistic load conditions
  4. Document methodology and results

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

在进行 Code Review 时,使用这个技能对 LoongCollector 变更进行安全导向、架构一致性优先的深度代码评审。

日本語の概要は準備中です。原文の説明を表示しています。

alibaba/loongcollector2,2042026年10月9日 更新

commit

無料

按 Conventional Commits 规范编写提交信息。在创建 git commit 时使用。

日本語の概要は準備中です。原文の説明を表示しています。

alibaba/loongcollector2,2042026年10月9日 更新

compile

無料

编译 LoongCollector C++ 与 Go 组件。涉及构建、单元测试或镜像时使用。

日本語の概要は準備中です。原文の説明を表示しています。

alibaba/loongcollector2,2042026年10月9日 更新

Design document writing conventions. Use when writing or reviewing technical design documents.

日本語の概要は準備中です。原文の説明を表示しています。

alibaba/loongcollector2,2042026年10月9日 更新

e2e

無料

LoongCollector E2E 测试全流程指南:设计、编写、运行和调试。当需要编写新 E2E 测试、运行现有测试、或排查 E2E 测试失败时使用此 skill。

日本語の概要は準備中です。原文の説明を表示しています。

alibaba/loongcollector2,2042026年10月9日 更新

LoongCollector E2E Testing Framework Development Guide. Use this rule when you need to understand E2E testing framework architecture, develop new test behavior functions, or extend testing capabilities. Contains detailed BDD testing framework usage, test behavior function development and registration workflows, and comprehensive reference of existing testing capabilities. Example: When adding custom test behaviors for new plugins, use this rule to understand how to write and register new test functions. Example: When developing E2E tests, use this rule to understand the e2e framework.

日本語の概要は準備中です。原文の説明を表示しています。

alibaba/loongcollector2,2042026年10月9日 更新

alibaba のスキルをすべて見る

このスキルの問題を報告する