Agent skill

Run Integration Tests

by newrelic in newrelic/newrelic-dotnet-agent

Run the New Relic .NET agent integration tests locally. An agent skill from newrelic/newrelic-dotnet-agent.

Apache-2.0Auto-check passedTesting & QA

Install Run Integration Tests

skills CLI
$ npx skills add newrelic/newrelic-dotnet-agent --skill run-integration-tests -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install newrelic/newrelic-dotnet-agent run-integration-tests --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/newrelic/newrelic-dotnet-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/run-integration-tests .claude/skills/run-integration-tests && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
run-integration-tests
GitHub stars
117
Token cost
~2k tokens
SKILL.md length
728 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Run the New Relic .NET agent integration tests locally. An agent skill from newrelic/newrelic-dotnet-agent.

  • Works in 5 steps: Build (solutions only, never individual… → Pick the layer → Run -- runner depends on the layer → …
  • You need to run
  • SKILL.md covers 1. Build (solutions only,…, 2. Pick the layer, 3. Run -- runner depends on… and 4. Logging env -- don't touch, plus 1 more section
  • Calls dotnet and docker

What it does

Run Integration Tests is an agent skill from newrelic/newrelic-dotnet-agent. Run the New Relic .NET agent integration tests locally. Use whenever you need to run, debug, or reproduce an integration test (host-run IntegrationTests, UnboundedIntegrationTests, or ContainerIntegrationTests), are verifying an agent/wrapper change end to end, or find yourself reaching for dotnet test against a test project in this repo. You run these from the CLI yourself -- secrets and infra are already in place. Covers the build-first prerequisite, picking the layer, the run command per layer, and the env…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Integration testing. It works with New Relic and .NET. The repository describes itself as: The New Relic .NET language agent. The licence is Apache-2.0.

When your agent uses it

  • You need to run
  • Reproduce an integration test (host-run IntegrationTests
  • UnboundedIntegrationTests
  • ContainerIntegrationTests)

Example prompts

  • “/run-integration-tests”

Requirements

  • Docker

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Build (solutions only, never individual projects)
  2. Pick the layer
  3. Run -- runner depends on the layer
  4. Logging env -- don't touch
  5. On failure, check in order

What it can do on your machine

Read from SKILL.md and the folder at commit aca7658. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet
    • docker

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Run Integration Tests loads about 2k tokens when it runs. Until then it costs about 143 tokens; SKILL.md has 728 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~143
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from newrelic/newrelic-dotnet-agent at commit aca7658, republished under its Apache-2.0 licence (© newrelic). 728 words, ~1,966 tokens.

Download SKILL.mdSave it as .claude/skills/run-integration-tests/SKILL.md (or your agent's skills folder).
name
run-integration-tests
description
Run the New Relic .NET agent integration tests locally. Use whenever you need to run, debug, or reproduce an integration test (host-run IntegrationTests, UnboundedIntegrationTests, or ContainerIntegrationTests), are verifying an agent/wrapper change end to end, or find yourself reaching for `dotnet test` against a test project in this repo. You run these from the CLI yourself -- secrets and infra are already in place. Covers the build-first prerequisite, picking the layer, the run command per layer, and the env gotchas behind confusing failures.

Running integration tests locally

Start a real app with the agent attached, exercise it, wait for a harvest, assert on the parsed agent log. Flow: build agent (if changed) -> build test solution (if changed) -> run via the layer's runner -> read results.

1. Build (solutions only, never individual projects)

a. Agent -- only if agent/wrapper code changed. Tests read built home dirs src/Agent/newrelichome_*, not source; stale home = #1 false failure. Build FullAgent.sln (see build-dotnet-agent). Already current for this branch? Skip.

b. Test solution -- once, only if test/app/agent code changed since the last test-solution build. One build serves all later runs; never rebuild between tests. Building the .sln builds the test project, shared MultiFunctionApplicationHelpers, and every launched app (the test .csproj doesn't reference the apps, but the solution includes all Applications/* + SharedApplications/ConsoleMultiFunctionApplication{FW,Core}) -- so never build an app by hand. App sourcing at test time: web apps copied from a Deploy/ folder; FW console from bin/<Config>/<tfm>; Core console dotnet published from source (always current).

Use full VS MSBuild.exe (not dotnet build -- legacy non-SDK web projects have WebPublish targets the SDK MSBuild can't build), Debug (fixture looks for apps under Debug). These flags mirror CI (all_solutions.yml) and are the only proven-good set: -p:DeployOnBuild=true -p:PublishProfile=LocalDeploy drives the web publish, and no -t:Build (the web csproj's <Target Name="Deploy" AfterTargets="Build"> re-invokes WebPublish; -t:Build -> error MSB4006: circular dependency ... "Deploy"). Slow -- background/tee. Swap the .sln per layer.

bash
MSBUILD=$(build/Tools/vswhere.exe -latest -prerelease -products '*' \
  -requires Microsoft.Component.MSBuild Microsoft.NetCore.Component.SDK \
  -find 'MSBuild\**\Bin\MSBuild.exe' | tr -d '\r' | head -1)
"$MSBUILD" tests/Agent/IntegrationTests/IntegrationTests.sln \
  -restore -m -p:Configuration=Debug -p:DeployOnBuild=true -p:PublishProfile=LocalDeploy

2. Pick the layer

LayerSolution / test projectNotes
Host-run (default)IntegrationTests.sln / IntegrationTests.csprojWindows + home dirs; real NR staging collectors. FW web-app tests (RemoteWebApplication/HostedWebCore) need an elevated (Administrator) terminal; console (ConsoleDynamicMethodFixture) tests don't.
UnboundedUnboundedIntegrationTests.sln / .csprojReal DBs/brokers (MySQL, Postgres, SQL Server, Mongo, Redis, RabbitMQ, Kafka, Elasticsearch, Couchbase...).
ContainerContainerIntegrationTests.sln / .csprojDocker Desktop; Linux-agent coverage. Runner differs -- section 3.
PerformancePerformanceTests.slnrun-perf-test.py, not dotnet test. Out of scope.

Host-run answers most things. Secrets auto (user secrets on Shared.csproj, already set). Unbounded infra is always up (restart: unless_stopped) -- no docker compose up; check UnboundedServices only on a connection failure.

3. Run -- runner depends on the layer

xUnit v3 projects (OutputType Exe, Microsoft.Testing.Platform).

Host-run / Unbounded: run the built exe <testproj>/bin/Debug/net10.0/NewRelic.Agent.<layer>.exe (as CI/VS do). Not dotnet test -- the VSTest bridge is ~3x slower (measured 7 ASB classes: ~5.7 min exe vs ~17 min dotnet test). Filters (native xUnit v3; cross-type AND; * at start/end): -namespace "<FQN>", -class "*Suffix"/"FQCN", -method "FQN.Method". Dry-run -list classes (/json to parse) before a slow run. One invocation spans everything in one assembly. Default -parallel collections, but effective concurrency ~2 -- fixtures serialize per-app publish/tool-install behind a lock (DotnetTool/RemoteApplication); don't force wider.

Run in a sub-agent (Sonnet; Haiku for one test) returning only: TEST EXECUTION SUMMARY (Total/Failed/Skipped), failing names + asserts, NR-ERROR/NR-FATAL. Never raw read/tail/wide-grep the agent log -- counts, capped width, /tmp distill.

bash
cd tests/Agent/IntegrationTests/UnboundedIntegrationTests/bin/Debug/net10.0
EXE=./NewRelic.Agent.UnboundedIntegrationTests.exe
"$EXE" -namespace "NewRelic.Agent.UnboundedIntegrationTests.AzureServiceBus" -class "*CoreLatest" \
       -trx "C:/IntegrationTestWorkingDirectory/TestResults/asb.trx" > /tmp/asb.log 2>&1

Exe prints === TEST EXECUTION SUMMARY === (Total/Errors/Failed/Skipped/Time); -trx writes a TRX; the agent-log temp path is printed in output.

Container: use dotnet test (runner is noise -- docker build + harvest waits dominate; ~2m16s dotnet test vs ~2m46s exe, same test). Multi-targets net10.0/net11.0 so pass --framework; filter by [Trait] like linux_container_tests.yml. Needs Docker Desktop + Linux home src/Agent/newrelichome_x64_coreclr_linux (libNewRelicProfiler.so); x64 needs no emulation, arm64 needs QEMU.

bash
dotnet test tests/Agent/IntegrationTests/ContainerIntegrationTests/ContainerIntegrationTests.csproj \
  --framework net10.0 --no-build --filter "Architecture=amd64&Distro=Ubuntu"
#   ... --filter "FullyQualifiedName~UbuntuX64ContainerTest"   # one class
Show full SKILL.md (218 more words)Show less

4. Logging env -- don't touch

NEW_RELIC_LOG_DIRECTORY/NEW_RELIC_LOG_LEVEL are inherited from the user's env -- don't set/override. Change agent behavior via NewRelicConfigModifier/WebConfigModifier/fixture.SetEnvironmentVariable, never ad-hoc XML.

5. On failure, check in order

  1. Elevated terminal? FW web-app tests (RemoteWebApplication/HostedWebCore) need Administrator; else HostedWebCore exits code 2.
  2. Builds current? FullAgent.sln fresh (if agent changed) + test solution built Debug with no app erroring out. (A stale bin/Release/<tfm>/<rid>/publish from NR_DOTNET_TEST_PREBUILT_APPS=1 can mask source changes -- delete it.)
  3. AzureFunction namespace: Core Tools must be >= 4.13.0. Symptom: Timed out waiting for Azure function host to become ready, and the captured func stdout carries Error configuring services in an external startup class ... Could not load file or assembly 'Microsoft.Extensions.Options, Version=10.0.0.0'. Cause: the isolated AzureFunctionApplication extension bundle resolves Microsoft.Extensions.* 10.0.x (Worker.Extensions.Storage.Queues -> WebJobs.Extensions.Storage.Queues 5.3.8 -> Microsoft.Extensions.Hosting >= 10.0.3) and does not ship those assemblies; the host supplies them. Core Tools retargeted to .NET 10 in 4.13.0 (2026-08-10) -- older hosts are net8.0 and ship 8.0.0.0. Verify with func.runtimeconfig.json ("tfm": "net10.0"); winget lags the GitHub release. Select a specific build with azure_func_exe_path=<...>\func.exe (CI sets it to the choco path). In-proc classes are unaffected: AzureFunctionInProcApplication references the WebJobs extensions directly and builds no bundle.
  4. Fixture env vars set? 5. Ports free (localhost)? 6. Agent log: grep NR-ERROR/NR-FATAL, distilled. 7. App stdout/stderr.

Container: Docker up with resources, image built, container stayed up, host<->container reachable.

© newrelic, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/run-integration-tests of newrelic/newrelic-dotnet-agent.

Open the folder on GitHubat commit aca7658

Compare with similar skills

Run Integration Tests next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Run Integration Tests compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Run Integration Tests this skillnewrelic/newrelic-dotnet-agent117—~2kAutomated safety check: PassApache-2.0
New Event Sourceaws/aws-lambda-dotnet1.7k—~3kAutomated safety check: PassApache-2.0
Aspire Integration TestingDevBetterCom/DevBetterWeb1572 repos~2.3kAutomated safety check: PassNone
Akka.NET Testing PatternsAaronontheweb/dotnet-skills1.2k1 repos~2.4kAutomated safety check: PassMIT
Testcontainers Guide Migratordocker/docs4.7k—~5kAutomated safety check: PassApache-2.0
Run Testsrunceel/ReactiveProperty944—~3.6kAutomated safety check: PassMIT

Similar skills

  • New Event Source

    aws/aws-lambda-dotnet

    Official

    Add a new AWS event source attribute (e.g., Kinesis, Kafka, MQ) to the Lambda .NET Annotations framework, including the attribute class, source generator integration, CloudFormation writer, unit…

    1.7k GitHub stars~3k tokensUpdated today
    Testing & QAAuto-check passed
  • Aspire Integration Testing

    DevBetterCom/DevBetterWeb

    Write integration tests using .NET Aspire's testing facilities with xUnit.

    157 GitHub starsUsed in 2 repos~2.3k tokens
    Testing & QAAuto-check passed
  • Akka.NET Testing Patterns

    Aaronontheweb/dotnet-skills

    Shows how to test Akka.NET actors with Akka.Hosting.TestKit: swapping services for fakes, using TestProbes, and checking persistence, plus when the older TestKit still fits.

    1.2k GitHub starsUsed in 1 repo~2.4k tokens
    Testing & QAAuto-check passed
  • Official

    Migrate a Testcontainers guide from testcontainers.com into the Docker docs site (docs.docker.com).

    4.7k GitHub stars~5k tokensUpdated today
    Testing & QAAuto-check passed
  • Run Tests

    runceel/ReactiveProperty

    Runs .NET tests with dotnet test. An agent skill from runceel/ReactiveProperty.

    944 GitHub stars~3.6k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Official

    Builds and packs .NET MAUI, installs the local workloads and runs integration tests for templates, samples and end-to-end scenarios by category.

    23k GitHub stars~2.1k tokensUpdated today
    Testing & QAAuto-check passed

More from newrelic/newrelic-dotnet-agent

  • Analyze Dotnet Agent Logs

    newrelic/newrelic-dotnet-agent

    Parse and diagnose New Relic .NET agent logs (newrelicagent.log) and profiler logs (NewRelic.Profiler.<pid.log) from a support ticket.

    117 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Angler Dotnet Release

    newrelic/newrelic-dotnet-agent

    Open an Angler PR that adds the latest .NET agent release to metricnames.txt.

    117 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Build Dotnet Agent

    newrelic/newrelic-dotnet-agent

    Build the New Relic .NET agent locally and validate that code changes compile.

    117 GitHub stars~871 tokensUpdated today
    Auto-check passed
  • Update Dotty Docs

    newrelic/newrelic-dotnet-agent

    A skill your agent uses when the user mentions a Dotty PR, dotty (package/dependency) updates, or asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested…

    117 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Dotnet Unit Test Coverage

    newrelic/newrelic-dotnet-agent

    Mandatory unit-test and code-coverage rules for the .NET agent.

    117 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Triage Integration Test Failures

    newrelic/newrelic-dotnet-agent

    A skill your agent uses when a CI integration, unbounded, or container test job fails intermittently, passes on a rerun, fails identically across every matrix variant, or shows an infra-shaped error…

    117 GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Run Integration Tests

What does Run Integration Tests do?

Run the New Relic .NET agent integration tests locally. An agent skill from newrelic/newrelic-dotnet-agent. Run Integration Tests is an agent skill from newrelic/newrelic-dotnet-agent.NET agent integration tests locally.

When should I use Run Integration Tests?

Run Integration Tests fits situations like: you need to run; reproduce an integration test (host-run IntegrationTests; unboundedIntegrationTests; containerIntegrationTests).

How do I install Run Integration Tests in Claude Code?

Run `npx skills add newrelic/newrelic-dotnet-agent --skill run-integration-tests -a claude-code`. Or copy the skill folder (.claude/skills/run-integration-tests in newrelic/newrelic-dotnet-agent) into .claude/skills/run-integration-tests in your project. Claude Code loads it when a task matches its description.

How do I install Run Integration Tests in Codex?

Run `npx skills add newrelic/newrelic-dotnet-agent --skill run-integration-tests -a codex`. Or copy the skill folder (.claude/skills/run-integration-tests in newrelic/newrelic-dotnet-agent) into .agents/skills/run-integration-tests in your project. Codex loads it when a task matches its description.

Can I use Run Integration Tests in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add newrelic/newrelic-dotnet-agent --skill run-integration-tests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run-integration-tests, .gemini/skills/run-integration-tests, .github/skills/run-integration-tests and .opencode/skills/run-integration-tests in your project.

What does Run Integration Tests need to run?

Going by SKILL.md and its folder, Run Integration Tests needs the command-line tools its instructions call (dotnet and docker). Our summary lists: Docker.

Does Run Integration Tests access the network?

SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Run Integration Tests safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Run Integration Tests use?

Run Integration Tests is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Run Integration Tests use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Run Integration Tests?

Skills that share tags, products or a category with Run Integration Tests: New Event Source (aws/aws-lambda-dotnet, 1.7k stars), Aspire Integration Testing (DevBetterCom/DevBetterWeb, 157 stars), Akka.NET Testing Patterns (Aaronontheweb/dotnet-skills, 1.2k stars) and Testcontainers Guide Migrator (docker/docs, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Run Integration Tests?

newrelic (a GitHub organization) maintains it in newrelic/newrelic-dotnet-agent, which has 117 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.

Source: newrelic/newrelic-dotnet-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.