TeamCity On-Premises 2024.03 Help

Ipr(已弃用)

这个运行器能够在 TeamCity 中构建 IntelliJ IDEA 项目。
它已被 IntelliJ IDEA Project 运行器所取代。

这个页面包含有关 IPR 构建运行程序字段的参考信息。

Ipr Runner 弃用

自从 TeamCity 6.0 ,Ipr runner 已被弃用,取而代之的是 IntelliJ IDEA project runner ,它采用了另一种实现方法。 在接下来的一次主要 TeamCity 版本更新中,所有使用 Ipr 运行器的构建配置将会自动转换为 IntelliJ IDEA 项目运行器。 由于各个运行器在特定配置中可能会有不同的功能,因此我们强烈建议您将当前的 Ipr 运行器配置更改为新的运行器,并在最终禁用 Ipr 运行器之前检查您的设置。 请将所有新创建的项目都使用 IntelliJ IDEA 项目运行器,并且如果您遇到任何问题,请通知我们。

除了在支持的 IntelliJ IDEA 项目特性范围上存在差异之外,运行器在测试运行和覆盖率方面的方法也有所不同。
即:

  • IntelliJ IDEA 项目运行器不支持 EMMA 覆盖率。 我们建议,如果您使用过 EMMA,那么迁移到 IntelliJ IDEA 覆盖引擎。

  • 在 IntelliJ IDEA 项目运行器中,JUnit 测试是通过 IntelliJ IDEA 共享的运行配置启动的,而不是通过 Ipr 运行器中的 Ant's <junit> 任务。

以下是从 Ipr 迁移到 IntelliJ IDEA 项目运行器的推荐步骤:

  1. 如果您现有的 Ipr 运行器已配置 JUnit 测试运行器设置,请备份该部分的所有设置,例如,备份到一个文本文件中。

  2. 如果您已配置了 code coverage settings,也请保存这些设置。 (也可参考相关的 问题

  3. 将运行器类型更改为 IntelliJ IDEA Project。 除了 JUnit 和代码覆盖率选项外,您的所有设置都将被迁移。

  4. 要恢复 JUnit 测试,您需要在 IntelliJ IDEA 中创建一个共享的运行配置,并将相应的文件提交到版本控制中。 运行配置的名称随后可以在 要执行的运行配置 区域中指定。

  5. 为了覆盖率,使用您保存的设置重新配置代码覆盖率选项。

IntelliJ IDEA 项目设置

选项

描述

项目的路径

使用此字段来指定项目文件( .ipr )的路径,或者指定含有 .idea 目录的项目目录(项目的根目录)的路径。 这些信息是构建运行程序需要的,以理解项目的结构。

路径应相对于签出目录。

*.iml 文件中检测全局库和基于模块的 JDK

如果勾选此选项,则在保存时,所有模块文件将自动扫描全局库和模块 JDK 的引用。 这可以帮助您确保所有引用都能得到正确解析。

检查 / 重新解析项目

点击以重新解析项目,并直接从 IDEA 项目中导入构建设置,例如 JDKs 列表。

工作目录

输入一个路径到 构建工作目录,如果它与 构建检出目录 不同。

如有不同,可选地指定与检出目录不同的目录。

未解决的项目模块和路径变量

当 IntelliJ IDEA 模块文件( .iml )被 IPR 文件引用时,此部分会显示:

  • 找不到

  • 允许您输入在 IPR-file 中使用的路径变量的值

要在此部分刷新值,请点击 检查/重新解析项目

选项

描述

<path_variable_name>

如果项目文件包含路径宏,该字段将显示,这些路径宏在 IntelliJ IDEA 的设置对话框中的路径变量对话框中定义。 在 设置字段值 中,指定一个项目资源路径,以用于不同的构建代理。

项目 JDKs

这一部分提供了项目中检测到的 JDKs 列表。

选项

描述

JDK 主页

使用此字段来为项目指定 JDK 主目录。

JDK Jar 文件模式

点击此链接以打开一个文本区域,您可以在其中为项目 JDK 的 .jar 文件定义模板。 使用 Ant 规则来定义 .jar 文件模式。
默认值用于 Linux 和 Windows 操作系统:

jre/lib/*.jar

对于 macOS ,请使用以下行:

lib/*.jar ../Classes/*.jar

IDEA 主页

如果您的项目使用 IDEA JDK, 请指定 IDEA 主目录的位置

IDEA Jar 文件模式

点击此链接可以打开一个文本区域,您可以在其中定义 IDEA JDK 的 .jar 文件模板。

附加的前/后处理(Ant)

选项

描述

构建前运行

在相应的字段中,输入您希望在开始构建之前运行的 Ant 脚本和目标(可选)。 Ant 文件的路径应相对于项目根目录。

构建后运行

在相应的字段中,输入您希望在构建完成后运行的 Ant 脚本和目标(可选)。 Ant 文件的路径应相对于项目根目录。

JUnit 测试运行器设置

选项

描述

测试模式

点击 输入测试模式 链接,并在文本区域中指定所需的测试模式。
这些模式用于生成 batchtest JUnit 任务部分的参数。 每种模式都会生成 包含排除 部分。 这些模式也用于为测试运行组成类路径。 在模式中提到的每个模块都将其类路径添加到整个类路径。
每个模式都应放在单独的一行,并具有以下格式:

[-]moduleName:[testFileNamePattern]

where:

  • [-] :如果模式以减号字符开始,相应的文件将被排除在构建过程之外。

  • moduleName :此名称可以包含通配符。

  • [testFileNamePattern]testFileNamePattern 的默认值为 **/*Test.java ,即所有目录中以 Test.java 结尾的所有文件。 您可以使用 Ant 语法 来进行文件模式匹配。 下面的示例包括了所有以 "test" 结尾的模块中的测试文件,并排除了所有包含 "ui" 子包的包中的文件:

*test:**/*Test.java -*:**/ui/**/*.java

搜索测试

在 IDEA 项目中,用户可以将源代码目录标记为 test 根。 这个下拉菜单允许您指定要搜索测试的目录:

  • 在所有项目源码中:在您的 IDEA 项目的 test 目录中寻找测试。

  • 仅在测试源中:只查看标记为测试根目录的目录。

在测试中的 Classpath

默认情况下,整个类路径由用于获取测试的所有模块的类路径组成。 以下两个选项定义了您是使用默认的类路径,还是从指定的模块中获取。

在测试中覆盖类路径

如果选中此选项,您可以从单个、明确指定的模块定义测试类路径。

使用 JDK 和 classpath 的模块名称

如果选项 Override classpath in tests 被选中,您必须指定模块,该模块中指定了用于测试的类路径。

JUnit 分支模式

从组合框中选择所需的 fork 模式:

  • 请勿创建分支:创建分支已被禁用。

  • 每个测试分叉:已启用分叉,并且每个测试类在独立的JVM中运行

  • Fork 一次:启用了 fork,所有测试类都在单个 JVM 中运行

为每个测试新建类加载器实例

如果您希望为每个测试用例实例化一个新的类加载器,请选择此选项。 只有在选择了 Do not fork 选项后,此选项才可用。

包含 Ant 运行时

选择此选项以添加运行 JUnit 测试所需的 Ant 类。 如果启用了 fork 模式(每个测试分叉一次分叉),则此选项可用。

JVM 可执行文件

指定用于调用 JVM 的命令。 如果启用了 fork 模式(每个测试分叉一次分叉),则此选项可用。

遇到错误时停止构建

如果您希望在测试运行过程中出现错误时停止构建,请勾选此选项。

JUnit 的 JVM 命令行参数

指定传递给 JUnit 任务的 JVM 参数。

测试工作目录

指定测试的工作目录路径。

测试超时

指定经过若干毫秒后,测试将被取消。 如果选择了 Do not fork 选项,此值会被忽略。

缩短测试失败反馈时间

使用以下两种选项来指示 TeamCity 在其他测试之前运行一些测试。

首先运行最近失败的测试

如果选中,首先,TeamCity 将运行在之前完成或正在运行的构建中失败的测试,以及具有高失败率的测试(即所谓的 闪烁 测试)。

首先运行新的和修改过的测试

如果选中,TeamCity 会在任何其他测试之前运行在正在构建的更改列表中添加或修改的测试。

详细的 Ant

如果生成的 JUnit 任务需要以 ant 术语生成详细输出,请选中此选项。

Code Coverage(代码覆盖率)

要了解如何配置代码覆盖率选项,请参阅 配置 Java 代码覆盖率 页面。

最后修改日期: 16日 7月 2024年