find-and-run-tests

Como encontrar, construir e executar testes no workerd. Abrange nomenclatura de alvos wd-test e kj_test, padrões de consulta bazel e flags comuns. Também abrange o projeto pai…

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.

Mais skills de cloudflare

dependabot-review
cloudflare
Analisa um PR do Dependabot para determinar o que realmente mudou em cada pacote atualizado e se essas alterações afetam este repositório. Relata APIs/métodos alterados,…
module-registry
cloudflare
Carregar ao trabalhar com o registro de módulos no workerd — lendo, modificando, depurando ou revisando a resolução, compilação, avaliação ou registro de módulos…
reproduce
cloudflare
Reproduzir um problema do GitHub cloudflare/agents criando um projeto mínimo de Agents/Worker e implantando-o em uma conta temporária do Cloudflare, depois relatar…
local-explorer
cloudflare
Como adicionar produtos/recursos ao explorador local ou API local. Use ao implementar novas APIs locais ou rotas de interface sob…
open-pr
cloudflare
Pegue uma issue do GitHub cloudflare/agents mais quaisquer descobertas de reprodução e crie um PR de correção de uma só vez — branch, alteração, teste, push e abra o PR vinculado à issue.
write-endpoints
cloudflare
Guia abrangente para construir endpoints OpenAPI com chanfana - definição de esquema, validação de requisições, operações CRUD, integração com banco de dados D1 e…
agents-sdk
cloudflare
Construa agentes de IA no Cloudflare Workers usando o Agents SDK. Carregue ao criar agentes com estado, fluxos de trabalho duráveis, aplicativos WebSocket em tempo real, tarefas agendadas,…
changelog
cloudflare
Cria, atualiza e revisa entradas de changelog de produtos para o site de documentação da Cloudflare. Carregar ao gerar arquivos MDX de changelog, editar existentes…