---
title: go_test
description: Test Go packages with a managed SDK.
---

# `go_test`

`go_test` runs `go test` from project root with the selected managed SDK. By default it tests every package under the project. It registers the command as a root task and returns its dependency.

## Arguments

| Argument | Required | Description |
| --- | --- | --- |
| `packages` | No | Non-empty package patterns. Defaults to `["./..."]`. |
| `deps` | No | Dependencies activated before testing, in list order. Defaults to `[]`. |
| `run` | No | Regular expression passed as `-run` when non-empty. |
| `count` | No | Non-negative test count passed as `-count`; use `1` to disable cached results. |
| `timeout` | No | Duration passed as `-timeout` when non-empty. |
| `race` | No | Enable race detection with `-race`. Defaults to `False`. |
| `cover` | No | Enable coverage analysis with `-cover`. Defaults to `False`. |
| `short` | No | Enable short mode with `-short`. Defaults to `False`. |
| `verbose` | No | Enable verbose output with `-v`. Defaults to `False`. |
| `fail_fast` | No | Stop after the first package test failure with `-failfast`. Defaults to `False`. |
| `flags` | No | Additional string flags appended after package paths. Defaults to `[]`. |

Because `flags` follows package paths, it can carry test-binary flags and `-args`.

## Examples

### Test all packages

```python
load("@go@1.26.5", "go_test")

go_test()
```

### Test selected packages without cached results

```python
load("@go@1.26.5", "go_test")

go_test(
    packages=["./runner/...", "./internal/..."],
    count=1,
    timeout="2m",
)
```

### Run race and coverage checks

```python
load("@go@1.26.5", "go_test")
load("@os@1", "env_set")

go_test(
    race=True,
    cover=True,
    fail_fast=True,
    deps=[env_set("CGO_ENABLED", "1")],
)
```

<!--
Sitemap

URL: https://withxx.dev/index.md
Title: xx
Description: Practical, reproducible builds without build-system ceremony

URL: https://withxx.dev/examples/commands.md
Title: Command Examples
Description: General command, environment, and entrypoint patterns.

URL: https://withxx.dev/examples/go.md
Title: Go Examples
Description: Common Go build patterns with managed SDKs.

URL: https://withxx.dev/examples/nodejs.md
Title: Node.js Examples
Description: Common Node.js task patterns with a managed distribution.

URL: https://withxx.dev/examples/zig.md
Title: Zig Examples
Description: Direct Zig commands and Go CGO builds with a managed Zig distribution.

URL: https://withxx.dev/load.md
Title: Loading Files
Description: Split xx configuration into local Starlark modules.

URL: https://withxx.dev/packages/go/go.md
Title: go
Description: Activate a managed Go SDK for dependent tasks.

URL: https://withxx.dev/packages/go/go_binary.md
Title: go_binary
Description: Build a Go command with a managed SDK.

URL: https://withxx.dev/packages/go/go_install.md
Title: go_install
Description: Install a versioned Go command for dependent tasks.

URL: https://withxx.dev/packages/go/go_run.md
Title: go_run
Description: Run a versioned Go command with a managed SDK.

URL: https://withxx.dev/packages/go/go_test.md
Title: go_test
Description: Test Go packages with a managed SDK.

URL: https://withxx.dev/packages/nodejs/nodejs.md
Title: nodejs
Description: Activate managed Node.js for dependent tasks.

URL: https://withxx.dev/packages/nodejs/npm_install.md
Title: npm_install
Description: Install project dependencies with managed npm.

URL: https://withxx.dev/packages/nodejs/npm_run.md
Title: npm_run
Description: Run a project package script with managed npm.

URL: https://withxx.dev/packages/nodejs/npx_run.md
Title: npx_run
Description: Run a versioned npm package command with managed npx.

URL: https://withxx.dev/packages/os/env_append.md
Title: env_append
Description: Append an item to a list-like environment variable.

URL: https://withxx.dev/packages/os/env_get.md
Title: env_get
Description: Read a value from a task environment while evaluating Starlark.

URL: https://withxx.dev/packages/os/env_prepend.md
Title: env_prepend
Description: Prepend an item to a list-like environment variable.

URL: https://withxx.dev/packages/os/env_set.md
Title: env_set
Description: Set an environment variable for dependent tasks.

URL: https://withxx.dev/packages/os/env_unset.md
Title: env_unset
Description: Remove an environment variable from dependent tasks.

URL: https://withxx.dev/packages/os/run.md
Title: run
Description: Run a command from the project root.

URL: https://withxx.dev/packages/zig/zig.md
Title: zig
Description: Activate managed Zig for dependent tasks.

URL: https://withxx.dev/packages/zig/zig_cc.md
Title: zig_cc
Description: Configure managed Zig as a C and C++ compiler.

URL: https://withxx.dev/packages.md
Title: Built-in Packages
Description: Versioned toolchains, commands, and task environment helpers provided by xx.
-->
