TeamCity On-Premises 2023.11 Help

Ant

The Ant build runner can process Ant build.xml files.

Testing Frameworks Support

The TeamCity Ant runner supports the JUnit and TestNG frameworks. When tests are run by the junit and testng tasks directly within the script, TeamCity reports tests on the fly.

By using the <parallel> tag in your Ant script, it is possible to have the JUnit and TestNG tasks run in parallel. TeamCity supports this and should concurrently log the parallel processes correctly.

Reporting and Logging

TeamCity collects detailed data from Ant as to the performed activities, provides structured error reporting, and reports tests. However, you can start a build with no specific reporting or to turn off TeamCity-specific logging:

  • To disable TeamCity-specific reporting in Ant, use teamcity.ant.listener.enabled=false build configuration parameter

  • To disable JUnit reporting, use the teamcity.ant.junit-support.enabled=false system property

  • To disable TestNG reporting, use teamcity.ant.testng-support.enabled=false system property

Ant Runner Settings

Ant Parameters

Option

Description

Path to build.xml file

If you choose the option, you can type the path to an Ant build script file of the project. The path is relative to the project root directory. Alternatively, click VCS-browserIcon.png to choose the file using the VCS repository browser.

Build file content

If you choose this option, click the Type build file content link and type the source code of your custom build file in the text area. Note that the text area is resizeable. Use the Hide link to close the text area.

Working directory

Specify the build working directory if it differs from the checkout directory.

Targets

Use this text field to specify valid Ant targets as a list of space-separated strings. The available targets can be viewed in the web UI by clicking the icon next to the field and added by checking the appropriate boxes. If this field is left empty, the default target specified in the build script file will be run.

Ant home path

Specify the path to the distributive of your custom Ant. You do not need to specify this parameter if you are going to use the Ant distributive bundled with TeamCity.

Additional Ant command line parameters

Optionally, specify additional command line parameters as a space-separated list. For example, you can specify the ant-net-tasks Tool (see below).

ant-net-tasks Tool

The Ant build runner comes with a bundled tool, ant-net-tasks, which includes the jar files required for network tasks, such as FTP, sshexec, scp and mail.
It also contains missing link Ant task which can be used for REST requests.

To use the tool, specify -lib "%teamcity.tool.ant-net-tasks%" in Additional Ant command line parameters of the runner settings.

Java Parameters

Option

Description

JDK

Select a JDK. This section details the available options. The default is JAVA_HOME environment variable or the agent's own Java.

JDK home path

The option is available when <Custom> is selected above. Use this field to specify the path to your custom JDK used to run the build. If the field is left blank, the path to JDK Home is read either from the JAVA_HOME environment variable on the agent machine, or from the env.JAVA_HOME property specified in the build agent configuration file (buildAgent.properties). If these values are not specified, TeamCity uses the Java home of the build agent process itself.

JVM command line parameters

Additional JVM command line parameters allow you to set initial and maximum heap sizes, enable additional logging, select the required bytecode verifier mode, and more.

You can specify both standard (begin with -, for instance -verbose:[class|module|gc|jni] or --dry-run) and non-standard (begin with -X, for instance -Xmx<size> or -XstartOnFirstThread) JVM options.

To specify multiple command line parameters, use space as a separator. For example:

-verbose:gc -Xdiag -Xcomp -Xmx512m -Xms256m

Test Parameters

Tests reordering works the following way: TeamCity provides tests that should be run first (test classes), after that, when a JUnit task starts, it checks whether it includes these tests. If at least one test is included, TeamCity generates a new fileset containing included tests only and processes it before all other filesets. It also patches other filesets to exclude tests added to the automatically generated fileset. After that JUnit starts and runs as usual.

Option

Description

Reduce test failure feedback time:

Use the following two options to instruct TeamCity to run some tests before others.

  • Run recently failed tests first — if checked,TeamCity will first run tests failed in the previous finished or running builds as well as tests having a high failure rate (so called blinking tests).

  • Run new and modified tests first — if checked, TeamCity will first run the tests added or modified in the change lists included in the running build.

Docker Settings

In this section, you can specify a Docker image which will be used to run the build step.

Code Coverage

To learn about configuring code coverage options, refer to the Configuring Java Code Coverage page.

JUnit 5 Support

TeamCity Ant runner does not currently display tests under the "Tests" build result tab if these tests are declared in <junitlauncher> tasks. Use <junit> tasks instead or migrate your project to Gradle (the TeamCity Gradle runner fully supports JUnit 5).

Last modified: 18 May 2023