本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
最佳实践
在使用提供的测试功能时 CodeCatalyst,我们建议您遵循以下最佳实践。
自动发现
在中配置操作时 CodeCatalyst,自动发现允许您自动发现各种工具(例如 JUnit 测试报告)的输出,并从中生成相关 CodeCatalyst报告。自动发现有助于确保即使发现的输出的名称或路径发生变化,仍能继续生成报告。添加新文件后, CodeCatalyst会自动发现它们并生成相关报告。但是,如果您使用自动发现,则必须考虑此功能的以下某些方面:
-
当您在操作中激活自动发现时,所有自动发现的相同类型的报告都将共享相同的成功标准。例如,诸如最低通过率之类的共享标准将适用于所有自动发现的测试报告。如果您需要为相同类型的报告设置不同的标准,则必须明确配置这些报告中的每一个报告。
-
自动发现还可以查找由您的依赖项生成的报告,如果配置了成功标准,则可能无法对这些报告执行操作。此问题可以通过更新排除路径配置来解决。
-
不能保证自动发现每次都生成相同的报告列表,因为它会在运行时扫描操作。如果您希望始终生成特定的报告,则应明确配置报告。例如,如果测试作为构建的一部分停止运行,则测试框架将不会生成任何输出,因此不会生成任何测试报告,操作可能会成功。如果您希望操作的成功取决于该特定测试,则必须明确配置该报告。
提示
在开始新项目或现有项目时,请对整个项目目录(包括**/*
)使用自动发现。这会调用项目中所有文件(包括子目录中的文件)生成报告。
有关更多信息,请参阅 配置报告。
成功标准
您可以通过配置成功标准对报告强制执行质量阈值。例如,如果自动发现了两个代码覆盖率报告,一个的行覆盖率为 80%,另一个的行覆盖率为 60%,则有以下选项:
-
将线路覆盖率的自动发现成功标准设置为 80%。这将导致第一份报告通过,第二份报告失败,从而导致整体操作失败。要解除对工作流程的封锁,请在项目中添加新的测试,直到第二份报告的行覆盖率超过 80%。
-
将线路覆盖率的自动发现成功标准设置为 60%。这将导致两个报告都通过,从而导致操作成功。然后,你可以在第二份报告中着手增加代码覆盖率。但是,使用这种方法,您不能保证第一份报告中的覆盖率不会降至80%以下。
-
使用可视化编辑器或为每个报告添加明确的 YAML 部分和路径,显式配置其中一个或两个报告。这将允许您为每个报告配置单独的成功标准和自定义名称。但是,使用这种方法,如果报告路径发生变化,操作可能会失败。
有关更多信息,请参阅 为报告配置成功标准。
包含/排除路径
查看操作结果时,您可以调整 CodeCatalyst 通过配置IncludePaths
和生成的报告列表ExcludePaths
。
-
用于
IncludePaths
指定搜索报告时 CodeCatalyst 要包含的文件和文件路径。例如,如果您指定"/test/report/*"
,则会在操作使用的整个构建映像中 CodeCatalyst 搜索该/test/report/
目录。当它找到该目录时, CodeCatalyst 然后在该目录中查找报告。注意
对于手动配置的报告,
IncludePaths
必须是与单个文件匹配的 glob 模式。 -
用于
ExcludePaths
指定搜索报告时 CodeCatalyst 要排除的文件和文件路径。例如,如果您指定"/test/reports/**/*"
,则 CodeCatalyst不会在/test/reports/
目录中搜索文件。要忽略目录中的所有文件,请使用**/*
glob 模式。
以下是可能的 glob 模式的示例。
模式 | 描述 |
---|---|
|
匹配当前目录中所有包含点的对象名称 |
|
匹配当前目录中以结尾的所有对象名称 |
|
匹配当前目录中以 |
|
匹配所有以结尾的目录中的对象名称 |
|
匹配名为的对象 |
|
匹配子文件夹中一个级别中的对象 |
|
匹配子文件夹中两个级别的对象 |
|
匹配子文件夹 |
CodeCatalyst 按如下方式解释全局模式:
-
斜杠 (
/
) 字符分隔文件路径中的目录。 -
星号 (
*
) 字符与不跨越文件夹边界的名称组分的零个或多个字符匹配。 -
双星号 (
**
) 与所有目录中名称组分的零个或多个字符匹配。
注意
ExcludePaths
优先于IncludePaths
。如果两者都IncludePaths
ExcludePaths
包含同一个文件夹,则不会扫描该文件夹以获取报告。