ClaudeCloudflare Developer Platform2026/07/27 0:00

Workers - Run integration tests against your Worker's production build

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudeja

Workers - Run integration tests against your Worker's production build の要約

Key Points

  • ポイント1: July 27, 2026 Run integration tests against your Worker's production build Workers Wrangler now provides createTestHarness() , an API for running integration tests against Work
  • ポイント2: The test harness starts a local Worker server with helpers for dispatching requests, resetting storage, and inspecting runtime logs .
  • ポイント3: This is useful for tests that need to: Route requests across multiple Workers Mock outbound fetch() requests with Node.js request mocking libraries such as MSW ↗ Run Playwright tes

Summary

この記事は 2026-07-27 に公開された「Workers - Run integration tests against your Worker's production build」の内容を日本語で簡潔にまとめたものです。

Key Points

  • ポイント1: July 27, 2026 Run integration tests against your Worker's production build Workers Wrangler now provides createTestHarness() , an API for running integration tests against Work
  • ポイント2: The test harness starts a local Worker server with helpers for dispatching requests, resetting storage, and inspecting runtime logs .
  • ポイント3: This is useful for tests that need to: Route requests across multiple Workers Mock outbound fetch() requests with Node.js request mocking libraries such as MSW ↗ Run Playwright tes

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudeja

Workers - Run integration tests against your Worker's production build(原文タイトル)

概要

公開日: 2026-07-27 翻訳生成に失敗したため、原文をそのまま保存しています。

原文

July 27, 2026 Run integration tests against your Worker's production build Workers Wrangler now provides createTestHarness() , an API for running integration tests against Workers built with Wrangler or the Cloudflare Vite plugin from any Node.js test runner. The test harness starts a local Worker server with helpers for dispatching requests, resetting storage, and inspecting runtime logs . This is useful for tests that need to: Route requests across multiple Workers Mock outbound fetch() requests with Node.js request mocking libraries such as MSW ↗ Run Playwright tests against a Worker For example, this test starts two Workers and mocks an upstream API: tests/vitest.test.js js import { afterAll, afterEach, beforeAll, test } from "vitest" ; import { http, HttpResponse } from "msw" ; import { setupServer } from "msw/node" ; import { createTestHarness } from "wrangler" ; const network = setupServer (); const server = createTestHarness ({ workers: [ /** Includes "routes": ["example.com/*"] / { configPath: "./workers/web/wrangler.jsonc" }, /* Includes "routes": ["api.example.com/v1/*"] / { configPath: "./workers/api/wrangler.jsonc" }, ], }); beforeAll ( async () => { network. listen ({ onUnhandledRequest: "error" }); await server. listen (); }); afterEach ( async () => { network. resetHandlers (); await server. reset (); }); afterAll ( async () => { network. close (); await server. close (); }); test ( "routes requests to each Worker" , async ({ expect }) => { // Mock the outbound fetch used to load user profiles. network. use ( http. get ( "http://identity.example.com/profile/123" , ({ params }) => { return HttpResponse. json ({ id: 123 , name: "Ada" }); }), ); const apiWorkerResponse = await server. fetch ( "http://api.example.com/v1/users/123" , ); expect ( await apiWorkerResponse. json ()). toEqual ({ id: 123 , name: "Ada" , }); const webWorkerResponse = await server. fetch ( "http://example.com/users/123" ); expect ( await webWorkerResponse. text ()). toBe ( "Profile: Ada" ); }); tests/vitest.test.ts ts import { afterAll, afterEach, beforeAll, test } from "vitest" ; import { http, HttpResponse } from "msw" ; import { setupServer } from "msw/node" ; import { createTestHarness } from "wrangler" ; const network = setupServer (); const server = createTestHarness ({ workers: [ /* Includes "routes": ["example.com/*"] / { configPath: "./workers/web/wrangler.jsonc" }, /* Includes "routes": ["api.example.com/v1/*"] */ { configPath: "./workers/api/wrangler.jsonc" }, ], }); beforeAll ( async () => { network. listen ({ onUnhandledRequest: "error" }); await server. listen (); }); afterEach ( async () => { network. resetHandlers (); await server. reset (); }); afterAll ( async () => { network. close (); await server. close (); }); test ( "routes requests to each Worker" , async ({ expect }) => { // Mock the outbound fetch used to load user profiles. network. use ( http. get ( "http://identity.example.com/profile/123" , ({ params }) => { return HttpResponse. json ({ id: 123 , name: "Ada" }); }), ); const apiWorkerResponse = await server. fetch ( "http://api.example.com/v1/users/123" , ); expect ( await apiWorkerResponse. json ()). toEqual ({ id: 123 , name: "Ada" , }); const webWorkerResponse = await server. fetch ( "http://example.com/users/123" ); expect ( await webWorkerResponse. text ()). toBe ( "Profile: Ada" ); }); Cloudflare now recommends createTestHarness() for integration tests instead of unstable_startWorker() or unstable_dev() . To start a development server programmatically, use the Vite createServer() ↗ API with the Cloudflare Vite plugin . For more information about createTestHarness() , refer to the Integration test harness guide .