1"use strict";(globalThis.webpackChunktunit_docs_site||=[]).push([[8080],{33687(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"reference/environment-variables","title":"Environment Variables","description":"TUnit supports configuration through environment variables, allowing you to set defaults without modifying command-line arguments. This is particularly useful for CI/CD pipelines and development environments.","source":"@site/docs/reference/environment-variables.md","sourceDirName":"reference","slug":"/reference/environment-variables","permalink":"/docs/reference/environment-variables","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"docs","previous":{"title":"Command Line Flags","permalink":"/docs/reference/command-line-flags"},"next":{"title":"Test Configuration","permalink":"/docs/reference/test-configuration"}}');var t=s(74848),i=s(28453);const l={},d="Environment Variables",o={},c=[{value:"TUnit-Specific Environment Variables",id:"tunit-specific-environment-variables",level:2},{value:"TUNIT_DISABLE_LOGO",id:"tunit_disable_logo",level:3},{value:"TUNIT_DISABLE_GITHUB_REPORTER",id:"tunit_disable_github_reporter",level:3},{value:"TUNIT_GITHUB_REPORTER_STYLE",id:"tunit_github_reporter_style",level:3},{value:"TUNIT_DISABLE_HTML_REPORTER",id:"tunit_disable_html_reporter",level:3},{value:"TUNIT_DISABLE_ARTIFACT_UPLOAD",id:"tunit_disable_artifact_upload",level:3},{value:"Use case",id:"use-case",level:4},{value:"TUNIT_DISABLE_JSON_REPORT",id:"tunit_disable_json_report",level:3},{value:"TUNIT_DISABLE_JUNIT_REPORTER",id:"tunit_disable_junit_reporter",level:3},{value:"TUNIT_ENABLE_JUNIT_REPORTER",id:"tunit_enable_junit_reporter",level:3},{value:"JUNIT_XML_OUTPUT_PATH",id:"junit_xml_output_path",level:3},{value:"TUNIT_MAX_PARALLEL_TESTS",id:"tunit_max_parallel_tests",level:3},{value:"TUNIT_EXECUTION_MODE",id:"tunit_execution_mode",level:3},{value:"TUNIT_DISCOVERY_DIAGNOSTICS",id:"tunit_discovery_diagnostics",level:3},{value:"TUNIT_DIAGNOSTIC_CAST",id:"tunit_diagnostic_cast",level:3},{value:"TUNIT_ENABLE_IDE_STREAMING",id:"tunit_enable_ide_streaming",level:3},{value:"Microsoft Testing Platform Environment Variables",id:"microsoft-testing-platform-environment-variables",level:2},{value:"TESTINGPLATFORM_TELEMETRY_OPTOUT",id:"testingplatform_telemetry_optout",level:3},{value:"TESTINGPLATFORM_UI_LANGUAGE",id:"testingplatform_ui_language",level:3},{value:"Platform-Level Flags",id:"platform-level-flags",level:2},{value:"Workarounds for --no-progress",id:"workarounds-for---no-progress",level:3},{value:"CI/CD Examples",id:"cicd-examples",level:2},{value:"GitHub Actions",id:"github-actions",level:3},{value:"Azure DevOps",id:"azure-devops",level:3},{value:"GitLab CI",id:"gitlab-ci",level:3},{value:"Docker",id:"docker",level:3},{value:"Priority Order",id:"priority-order",level:2},{value:"Summary Table",id:"summary-table",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"environment-variables",children:"Environment Variables"})}),"\n",(0,t.jsx)(n.p,{children:"TUnit supports configuration through environment variables, allowing you to set defaults without modifying command-line arguments. This is particularly useful for CI/CD pipelines and development environments."}),"\n",(0,t.jsx)(n.h2,{id:"tunit-specific-environment-variables",children:"TUnit-Specific Environment Variables"}),"\n",(0,t.jsx)(n.h3,{id:"tunit_disable_logo",children:"TUNIT_DISABLE_LOGO"}),"\n",(0,t.jsx)(n.p,{children:"Disables the TUnit ASCII art logo when starting a test session."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'# Bash/Linux/macOS\nexport TUNIT_DISABLE_LOGO=true\n\n# PowerShell\n$env:TUNIT_DISABLE_LOGO = "true"\n\n# Windows Command Prompt\nset TUNIT_DISABLE_LOGO=true\n'})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Equivalent to:"})," ",(0,t.jsx)(n.code,{children:"--disable-logo"})]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use case:"})," Reduces output noise in CI/CD logs or when using AI/LLM coding assistants that parse test output."]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_disable_github_reporter",children:"TUNIT_DISABLE_GITHUB_REPORTER"}),"\n",(0,t.jsx)(n.p,{children:"Disables the automatic GitHub Actions test summary reporter."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DISABLE_GITHUB_REPORTER=true\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use case:"})," When you want to use a custom reporting solution instead of the built-in GitHub Actions integration."]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_github_reporter_style",children:"TUNIT_GITHUB_REPORTER_STYLE"}),"\n",(0,t.jsx)(n.p,{children:"Controls the style of the GitHub Actions test reporter output."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_GITHUB_REPORTER_STYLE=collapsible # default\nexport TUNIT_GITHUB_REPORTER_STYLE=full\n"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Values:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"collapsible"})," (default): Wraps detailed test results in expandable HTML blocks"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"full"}),": Displays all test details directly"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Equivalent to:"})," ",(0,t.jsx)(n.code,{children:"--github-reporter-style"})]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_disable_html_reporter",children:"TUNIT_DISABLE_HTML_REPORTER"}),"\n",(0,t.jsx)(n.p,{children:"Disables the HTML test report that is generated by default after every test run."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DISABLE_HTML_REPORTER=true\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Accepts truthy values: ",(0,t.jsx)(n.code,{children:"true"}),", ",(0,t.jsx)(n.code,{children:"1"}),", ",(0,t.jsx)(n.code,{children:"yes"})," (case-insensitive)."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use case:"})," When you don't need the HTML report or want to reduce disk I/O. The report is written to ",(0,t.jsx)(n.code,{children:"TestResults/{AssemblyName}-report.html"})," by default."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Programmatic equivalent:"})," ",(0,t.jsx)(n.code,{children:"context.Settings.Reporting.HtmlReportEnabled = false"})]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_disable_artifact_upload",children:"TUNIT_DISABLE_ARTIFACT_UPLOAD"}),"\n",(0,t.jsx)(n.p,{children:"Skips automatic upload of the HTML report but still generates the files."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DISABLE_ARTIFACT_UPLOAD=true\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Accepts truthy values: ",(0,t.jsx)(n.code,{children:"true"}),", ",(0,t.jsx)(n.code,{children:"1"}),", ",(0,t.jsx)(n.code,{children:"yes"})," (case-insensitive)."]}),"\n",(0,t.jsx)(n.h4,{id:"use-case",children:"Use case"}),"\n",(0,t.jsxs)(n.p,{children:["CI Systems like ",(0,t.jsx)(n.a,{href:"https://forgejo.org/docs/next/user/actions/reference/",children:"forgejo-actions"})," are based on GitHub Enterprise Server.\nGitHub changed the server-side behaviour of ",(0,t.jsx)(n.code,{children:"upload-artifacts"})," since v4 and hasn't updated updated ghes since that.\nForgejo and gitea don't implement this new artifact endpoint but the runners set ",(0,t.jsx)(n.code,{children:"GITHUB_ACTIONS=true"}),".\nIn this case it attempts to upload the report a few times until it eventually backs off after 30s."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Programmatic equivalent:"})," ",(0,t.jsx)(n.code,{children:"context.Settings.Reporting.ArtifactUploadEnabled = false"})]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_disable_json_report",children:"TUNIT_DISABLE_JSON_REPORT"}),"\n",(0,t.jsx)(n.p,{children:"Disables the machine-readable JSON sidecar written alongside the HTML report."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DISABLE_JSON_REPORT=true\
1n"})}),"\n",(0,t.jsxs)(n.p,{children:["Accepts truthy values: ",(0,t.jsx)(n.code,{children:"true"}),", ",(0,t.jsx)(n.code,{children:"1"}),", ",(0,t.jsx)(n.code,{children:"yes"})," (case-insensitive)."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Programmatic equivalent:"})," ",(0,t.jsx)(n.code,{children:"context.Settings.Reporting.JsonReportEnabled = false"})]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_disable_junit_reporter",children:"TUNIT_DISABLE_JUNIT_REPORTER"}),"\n",(0,t.jsx)(n.p,{children:"Disables the JUnit XML reporter."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DISABLE_JUNIT_REPORTER=true\n"})}),"\n",(0,t.jsx)(n.h3,{id:"tunit_enable_junit_reporter",children:"TUNIT_ENABLE_JUNIT_REPORTER"}),"\n",(0,t.jsx)(n.p,{children:"Explicitly enables the JUnit XML reporter."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_ENABLE_JUNIT_REPORTER=true\n"})}),"\n",(0,t.jsx)(n.h3,{id:"junit_xml_output_path",children:"JUNIT_XML_OUTPUT_PATH"}),"\n",(0,t.jsx)(n.p,{children:"Sets the output path for JUnit XML reports."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export JUNIT_XML_OUTPUT_PATH=/path/to/output.xml\n"})}),"\n",(0,t.jsx)(n.h3,{id:"tunit_max_parallel_tests",children:"TUNIT_MAX_PARALLEL_TESTS"}),"\n",(0,t.jsx)(n.p,{children:"Sets the maximum number of tests that can run in parallel."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_MAX_PARALLEL_TESTS=4 # Limit to 4 concurrent tests\nexport TUNIT_MAX_PARALLEL_TESTS=0 # Unlimited parallelism\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Equivalent to:"})," ",(0,t.jsx)(n.code,{children:"--maximum-parallel-tests"})]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Programmatic equivalent:"})," ",(0,t.jsx)(n.code,{children:"context.Settings.Parallelism.MaximumParallelTests"})," (see ",(0,t.jsx)(n.a,{href:"/docs/reference/programmatic-configuration",children:"Programmatic Configuration"}),")"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Note:"})," Command-line arguments take precedence over environment variables."]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_execution_mode",children:"TUNIT_EXECUTION_MODE"}),"\n",(0,t.jsx)(n.p,{children:"Controls whether tests run in source-generation (AOT-optimized) mode or reflection mode."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'export TUNIT_EXECUTION_MODE=sourcegeneration # or "aot"\nexport TUNIT_EXECUTION_MODE=reflection\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Values:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"sourcegeneration"})," / ",(0,t.jsx)(n.code,{children:"aot"}),": Use source-generated test metadata (default, AOT-compatible)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"reflection"}),": Use reflection-based discovery and execution"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Equivalent to:"})," ",(0,t.jsx)(n.code,{children:"--reflection"})," flag (when set to ",(0,t.jsx)(n.code,{children:"reflection"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Priority:"})," AOT platform check > ",(0,t.jsx)(n.code,{children:"--reflection"})," flag > ",(0,t.jsx)(n.code,{children:"[ReflectionMode]"})," assembly attribute > this environment variable > built-in default."]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_discovery_diagnostics",children:"TUNIT_DISCOVERY_DIAGNOSTICS"}),"\n",(0,t.jsx)(n.p,{children:"Enables discovery-time diagnostic logging. Useful when investigating why a test is (or isn't) being picked up by discovery."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DISCOVERY_DIAGNOSTICS=1\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use case:"})," Debugging test discovery problems in source-generation or reflection mode."]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_diagnostic_cast",children:"TUNIT_DIAGNOSTIC_CAST"}),"\n",(0,t.jsxs)(n.p,{children:["Enables diagnostic logging for argument/value conversions performed by TUnit's ",(0,t.jsx)(n.code,{children:"CastHelper"}),". When a conversion fails, the helper writes a line describing the attempted source and target types."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TUNIT_DIAGNOSTIC_CAST=true\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use case:"})," Debugging ",(0,t.jsx)(n.code,{children:"InvalidCastException"}
1)," or silent conversion failures for data-driven tests."]}),"\n",(0,t.jsx)(n.h3,{id:"tunit_enable_ide_streaming",children:"TUNIT_ENABLE_IDE_STREAMING"}),"\n",(0,t.jsx)(n.p,{children:"Enables real-time output streaming to IDE test explorers (Rider, VS Code, Visual Studio)."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'# Bash/Linux/macOS\nexport TUNIT_ENABLE_IDE_STREAMING=1\n\n# PowerShell\n$env:TUNIT_ENABLE_IDE_STREAMING = "1"\n\n# Windows Command Prompt\nset TUNIT_ENABLE_IDE_STREAMING=1\n'})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Default:"})," Disabled"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use case:"})," When running tests in an IDE, this enables real-time streaming of test output (e.g. ",(0,t.jsx)(n.code,{children:"Console.WriteLine"}),") to the test explorer while tests are still running. Without this, output is shown after each test completes."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Note:"})," This feature is disabled by default due to known compatibility issues with the Microsoft Testing Platform that can cause test runner crashes in some IDEs. Enable it only if you want real-time output streaming and are not experiencing issues."]}),"\n",(0,t.jsx)(n.h2,{id:"microsoft-testing-platform-environment-variables",children:"Microsoft Testing Platform Environment Variables"}),"\n",(0,t.jsx)(n.p,{children:"These environment variables are provided by the underlying Microsoft Testing Platform:"}),"\n",(0,t.jsx)(n.h3,{id:"testingplatform_telemetry_optout",children:"TESTINGPLATFORM_TELEMETRY_OPTOUT"}),"\n",(0,t.jsx)(n.p,{children:"Disables telemetry collection."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TESTINGPLATFORM_TELEMETRY_OPTOUT=1\n"})}),"\n",(0,t.jsx)(n.h3,{id:"testingplatform_ui_language",children:"TESTINGPLATFORM_UI_LANGUAGE"}),"\n",(0,t.jsx)(n.p,{children:"Sets the language for platform messages and logs."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export TESTINGPLATFORM_UI_LANGUAGE=en-us\n"})}),"\n",(0,t.jsx)(n.h2,{id:"platform-level-flags",children:"Platform-Level Flags"}),"\n",(0,t.jsx)(n.p,{children:"Some command-line flags are handled by the Microsoft Testing Platform rather than TUnit directly. These flags currently do not have environment variable equivalents:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"--no-progress"})," - Disables progress reporting to screen"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"--no-ansi"})," - Disables ANSI escape characters"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"workarounds-for---no-progress",children:"Workarounds for --no-progress"}),"\n",(0,t.jsxs)(n.p,{children:["While there's no environment variable for ",(0,t.jsx)(n.code,{children:"--no-progress"}),", you can use these alternatives:"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsxs)(n.strong,{children:["1. MSBuild Property (with ",(0,t.jsx)(n.code,{children:"dotnet test"}),"):"]})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-xml",children:"<PropertyGroup>\n <TestingPlatformCommandLineArguments>--no-progress</TestingPlatformCommandLineArguments>\n</PropertyGroup>\n"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"2. Shell Wrapper:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'#!/bin/bash\n# run-tests.sh\n./MyTestProject.exe --no-progress "$@"\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"3. Direct Command Line:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"./MyTestProject.exe --no-progress\n"})}),"\n",(0,t.jsx)(n.h2,{id:"cicd-examples",children:"CI/CD Examples"}),"\n",(0,t.jsx)(n.h3,{id:"github-actions",children:"GitHub Actions"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"- name: Run Tests\n env:\n TUNIT_DISABLE_LOGO: true\n TUNIT_GITHUB_REPORTER_STYLE: collapsible\n run: dotnet test\n"})}),"\n",(0,t.jsx)(n.h3,{id:"azure-devops",children:"Azure DevOps"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"- task: DotNetCoreCLI@2\n env:\n TUNIT_DISABLE_LOGO: true\n inputs:\n command: 'test'\n"})}),"\n",(0,t.jsx)(n.h3,{id:"gitlab-ci",children:"GitLab CI"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'test:\n variables:\n TUNIT_DISABLE_LOGO: "true"\n script:\n - dotnet test\n'})}),"\n",(0,t.jsx)(n.h3,{id:"docker",children:"Docker"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-dockerfile",children:"ENV TUNIT_DISABLE_LOGO=true\nENV TUNIT_MAX_PARALLEL_TESTS=4\n"})}),"\n",(0,t.jsx)(n.h2,{id:"priority-order",children:"Priority Order"}),"\n",(0,t.jsx)(n.p,{children:"When the same setting is configured in multiple places, TUnit follows this priority order (highest to lowest):"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Command-line arguments"})," - Always take precedence"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment variables"})," - Applied when command-line argument is not provided"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(n.code,{children:"context.Settings"})," (code)"]})," - Values set in ",(0,t.jsx)(n.code,{children:"[Before(HookType.TestDiscovery)]"})," hooks (see ",(0,t.jsx)(n.a,{href:"/docs/reference/programmatic-configuration",children:"Programmatic Configuration"}),")"]}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"Built-in defaults"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"summary-table",children:"Summary Table"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Environment Variable"}),(0,t.jsx)(n.th,{children:"Equivalent Flag"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISABLE_LOGO"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"--disable-logo"})}),(0,t.jsx)(n.td,{children:"Disables ASCII art logo"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_GITHUB_REPORTER_STYLE"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"--github-reporter-style"})}),(0,t.jsx)(n.td,{children:"GitHub reporter style"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISABLE_GITHUB_REPORTER"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Disables GitHub reporter"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISABLE_JUNIT_REPORTER"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Disables JUnit reporter"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_ENABLE_JUNIT_REPORTER"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Enables JUnit reporter"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISABLE_HTML_REPORTER"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsxs)(n.td,{children:["Disables HTML report generation (",(0,t.jsx)(n.code,{children:"context.Settings.Reporting.HtmlReportEnabled = false"}),")"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISABLE_JSON_REPORT"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsxs)(n.td,{children:["Disables the machine-readable JSON sidecar (",(0,t.jsx)(n.code,{children:"context.Settings.Reporting.JsonReportEnabled = false"}),")"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISABLE_ARTIFACT_UPLOAD"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsxs)(n.td,{children:["Keeps the HTML report file but skips the GitHub Actions artifact upload (",(0,t.jsx)(n.code,{children:"context.Settings.Reporting.ArtifactUploadEnabled = false"}),")"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"JUNIT_XML_OUTPUT_PATH"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"JUnit output path"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_MAX_PARALLEL_TESTS"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"--maximum-parallel-tests"})}),(0,t.jsx)(n.td,{children:"Max parallel tests"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_EXECUTION_MODE"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"--reflection"})}),(0,t.jsxs)(n.td,{children:["Selects source-generation (",(0,t.jsx)(n.code,{children:"sourcegeneration"}),"/",(0,t.jsx)(n.code,{children:"aot"}),") or ",(0,t.jsx)(n.code,{children:"reflection"})," execution mode"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DISCOVERY_DIAGNOSTICS"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsxs)(n.td,{children:["Enables discovery-time diagnostics (",(0,t.jsx)(n.code,{children:"1"})," to enable)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_DIAGNOSTIC_CAST"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsxs)(n.td,{children:["Enables ",(0,t.jsx)(n.code,{children:"CastHelper"})," conversion diagnostics (",(0,t.jsx)(n.code,{children:"true"})," to enable)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"TUNIT_ENABLE_IDE_STREAMING"})}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Enable real-time IDE output streaming"})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},28453(e,n,s){s.d(n,{R:()=>l,x:()=>d});var r=s(96540);const t={},i=r.createContext(t);function l(e){const n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.