kotlin-dsl/DotnetVsTest.xml (159 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<dsl-extension kind="buildStep" type="dotnet" generateDslJar="true" applicable="params['command'] == 'vstest'">
<class name="DotnetVsTestStep">
<description>
A [.NET vstest step](https://github.com/JetBrains/teamcity-dotnet-plugin) to run .NET VSTest
</description>
</class>
<function name="dotnetVsTest" yamlName="dotnet-vstest">
<description>
Adds a [.NET vstest step](https://github.com/JetBrains/teamcity-dotnet-plugin) to run .NET VSTest
@see DotnetVsTestStep
</description>
</function>
<init>
<param name="command" value="vstest"/>
</init>
<params>
<param name="paths" dslName="assemblies">
<description>Specify paths to test assemblies. Wildcards are supported.</description>
</param>
<param name="excludedPaths" dslName="excludedAssemblies">
<description>Specify paths to excluded test assemblies. Wildcards are supported.</description>
</param>
<param name="teamcity.build.workingDir" dslName="workingDir" yamlName="working-directory">
<description>
[Build working directory](https://www.jetbrains.com/help/teamcity/?Build+Working+Directory) for
script,
specify it if it is different from the [checkout
directory](https://www.jetbrains.com/help/teamcity/?Build+Checkout+Directory).
</description>
</param>
<param name="vstest.version" dslName="version" type="VSTestVersion">
<description>
VSTest version to use
@see VSTestVersion
</description>
</param>
<param name="test.filter" dslName="filter" type="compound" yamlName="test-filter">
<description>
The filter type used while test run
</description>
<option name="testName" value="name">
<param name="test.names" dslName="names">
<description>Specify the list of test names to run.</description>
</param>
</option>
<option name="testCaseFilter" value="filter">
<param name="test.testCaseFilter" dslName="filter">
<description>Run tests that match the given expression.</description>
</param>
</option>
</param>
<param name="framework">
<description>The target .NET Framework version to be used for test execution.</description>
</param>
<param name="test.settingsFile" dslName="settingsFile">
<description>The path to the run settings configuration file.</description>
</param>
<param name="test.retry.maxRetries" dslName="maxRetries">
<description>Rerun failed tests until they pass or until the maximum number of attempts is reached.</description>
</param>
<param name="args">
<description>Enter additional command line parameters for dotnet vstest.</description>
</param>
<param name="verbosity" dslName="logging" type="Verbosity">
<description>
Specify logging verbosity
@see Verbosity
</description>
</param>
<param name="vstest.InIsolation" dslName="runInIsolation" type="boolean" trueValue="true" falseValue="">
<description>
Whether TeamCity should run tests in an isolated process
</description>
</param>
<param name="singleSession" dslName="singleSession" type="boolean" trueValue="true" falseValue="">
<description>
Whether TeamCity should run tests in a single session
</description>
</param>
<param name="platform" dslName="platform" type="Platform">
<description>
Target platform architecture to be used for test execution
@see Platform
</description>
</param>
<param name="required.sdk" dslName="sdk">
<description>.NET SDK versions separated by semicolon to be required on agents.</description>
</param>
</params>
<types>
<enum name="Verbosity">
<description>
Logging verbosity
</description>
<option name="Quiet" value="Quiet"/>
<option name="Minimal" value="Minimal"/>
<option name="Normal" value="Normal"/>
<option name="Detailed" value="Detailed"/>
<option name="Diagnostic" value="Diagnostic"/>
</enum>
<enum name="VSTestVersion">
<description>VSTest version</description>
<option name="CrossPlatform" value="VSTest_CrossPlatform">
<description>Cross-platform VSTest</description>
</option>
<option name="V18" value="VSTest_18_Windows">
<description>VSTest 2026</description>
</option>
<option name="V17" value="VSTest_17_Windows">
<description>VSTest 2022</description>
</option>
<option name="V16" value="VSTest_16_Windows">
<description>VSTest 2019</description>
</option>
<option name="V15" value="VSTest_15_Windows">
<description>VSTest 2017</description>
</option>
<option name="V14" value="VSTest_14_Windows">
<description>VSTest 2015</description>
</option>
<option name="V12" value="VSTest_12_Windows">
<description>VSTest 2013</description>
</option>
</enum>
<enum name="Platform">
<description>Platform bitness</description>
<option name="Auto" value="auto"/>
<option name="x86" value="x86"/>
<option name="x64" value="x64"/>
<option name="ARM" value="ARM"/>
</enum>
</types>
<examples>
<example>
<description>
Runs [`dotnet vstest`](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-vstest) command to run selected tests by names from the specified assemblies
</description>
<code>
dotnetVsTest {
assemblies = "path\to\assemblies\*.dll"
excludedAssemblies = "path\to\assemblies\ExcludedTests.dll"
version = DotnetVsTestStep.VSTestVersion.V17
filter = testName {
names = """
Test0
Test1
Test2
""".trimIndent()
}
settingsFile = "MyProjectTestsSettings.runsettings"
logging = DotnetVsTestStep.Verbosity.Normal
runInIsolation = true
platform = DotnetVsTestStep.Platform.x64
}
</code>
</example>
</examples>
</dsl-extension>