find-and-run-tests

โดย cloudflare

วิธีค้นหา สร้าง และรันการทดสอบใน workerd ครอบคลุม wd-test, การตั้งชื่อเป้าหมาย kj_test, รูปแบบการค้นหา bazel และแฟลกทั่วไป รวมถึงโปรเจกต์หลัก…

npx skills add https://github.com/cloudflare/workerd --skill find-and-run-tests

Finding and Running Tests

workerd Tests

Test types

TypeFile extensionBUILD macroTarget suffix
JS/TS integration.wd-testwd_test()None (target name = rule name)
C++ unit*-test.c++kj_test()None

Finding targets

# Find test targets in a directory
bazel query 'kind("test", //src/workerd/api/tests:*)' --output label

# Find test targets matching a name
bazel query 'kind(".*_test", //src/workerd/...)' --output label 2>/dev/null | grep -i '<name>'

# Find tests that depend on a source file
bazel query 'rdeps(//src/..., //src/workerd/io:trace-stream, 1)' --output label 2>/dev/null | grep -i test

Running

# Stream test output (preferred for debugging)
bazel test //src/workerd/api/tests:url-test --test_output=streamed

# Run with fresh results (no cache)
bazel test //target --test_output=streamed --nocache_test_results

# Run specific test case within a kj_test
bazel test //target --test_arg='-f' --test_arg='test case name'

Common flags

FlagPurpose
--test_output=streamedStream test output to terminal in real time
--nocache_test_resultsForce re-run, don't use cached results
--test_timeout=120Override default test timeout (seconds)

Parent Project Integration Tests

If workerd is used as a submodule in a parent project, that project may have its own integration test framework with different conventions. Load the parent-project-skills skill to discover those conventions.

General principles that apply to any integration test framework

Target naming with variant suffixes. Some test macros generate multiple targets from a single source file by appending variant suffixes (e.g., @, @all-autogates, @force-sharding). If bazel says "is a source file, nothing will be built" or "No test targets were found", you likely need a suffix. Use bazel query 'kind("test", //path:*)' to discover the actual runnable target names.

Cached results hide changes. Always use --nocache_test_results when re-running after modifying test files or source code. Without it, bazel returns stale cached results with stale logs.

Verify the feature actually ran. After a test passes, search the test output for feature-specific evidence (script names, process types, subrequests, RPC calls). A passing test with no evidence the feature ran is not a valid test — see the test-driven-investigation skill.

Debugging test failures

  1. Always use --nocache_test_results when re-running after changes.
  2. Check test logs at the path shown in bazel output: bazel-out/.../testlogs/.../test.log
  3. Search logs for feature-specific keywords to verify the feature actually ran.
  4. Subrequest mismatches (in frameworks that verify subrequests) typically show the actual vs expected request details — compare control headers carefully.

Skills เพิ่มเติมจาก cloudflare

dependabot-review
cloudflare
วิเคราะห์ Pull Request ของ Dependabot เพื่อตรวจสอบว่ามีการเปลี่ยนแปลงอะไรเกิดขึ้นจริงในแต่ละแพ็กเกจที่ถูกอัปเดต และการเปลี่ยนแปลงเหล่านั้นส่งผลกระทบต่อ repo นี้หรือไม่ รายงาน API/เมธอดที่เปลี่ยนแปลง…
module-registry
cloudflare
โหลดเมื่อทำงานกับ module registry ใน workerd — การอ่าน, แก้ไข, ดีบัก, หรือตรวจสอบการแก้ไขโมดูล, การคอมไพล์, การประเมินผล, หรือการลงทะเบียน…
reproduce
cloudflare
ทำซ้ำปัญหา GitHub ของ cloudflare/agents โดยการสร้างโปรเจกต์ Agents/Worker ขั้นต่ำและปรับใช้กับบัญชี Cloudflare ชั่วคราว จากนั้นรายงาน…
local-explorer
cloudflare
วิธีการเพิ่มผลิตภัณฑ์/ทรัพยากรไปยัง local explorer หรือ local API ใช้เมื่อกำลังใช้งาน local API ใหม่ หรือเส้นทาง UI ภายใต้…
open-pr
cloudflare
นำ issue จาก GitHub ของ cloudflare/agents และผลการจำลองซ้ำข้อบกพร่อง มาสร้าง PR แก้ไขในครั้งเดียว — สร้าง branch, แก้ไข, ทดสอบ, push, และเปิด PR ที่เชื่อมโยงกับ issue
write-endpoints
cloudflare
คู่มือฉบับสมบูรณ์สำหรับการสร้าง OpenAPI endpoints ด้วย chanfana - การกำหนด schema, การตรวจสอบคำขอ, การดำเนินการ CRUD, การรวมฐานข้อมูล D1 และ…
agents-sdk
cloudflare
สร้าง AI agent บน Cloudflare Workers โดยใช้ Agents SDK โหลดเมื่อสร้าง stateful agent, durable workflow, แอป WebSocket แบบเรียลไทม์, งานตามกำหนดเวลา,…
changelog
cloudflare
สร้าง อัปเดต และตรวจสอบรายการบันทึกการเปลี่ยนแปลงผลิตภัณฑ์สำหรับเว็บไซต์เอกสารของ Cloudflare โหลดเมื่อสร้างไฟล์ MDX บันทึกการเปลี่ยนแปลง แก้ไขไฟล์ที่มีอยู่…