本节介绍 Jtest 桌面版用户的测试影响分析工作流程。有关在命令行进行测试影响分析的信息,请参阅通过 Maven 进行测试和分析和通过 Gradle 进行测试和分析。
章节目录:
Jtest 的测试影响分析通过自动检测受修改代码影响的测试用例来帮助您优化测试工作。您只需确认并重新运行受变更影响的测试。
Jtest 通过以下方式识别受代码变更影响的单元测试:
受影响的单元测试视图将结合两种测试识别方式的结果。
尽管受影响的单元测试视图将根据单元测试命名约定自动显示测试,但代码覆盖率数据提供了更准确的结果,并可能识别需要运行的其他测试。因此,建议在查看受影响的测试前,确保将最近完整单元测试运行中的代码覆盖率数据导入 IDE。
要进行测试影响分析,项目需存储在与 IDE 集成的版本控制系统中。
1 在使用 Java 16 或更高版本的 IDE 中运行时,受影响的单元测试视图无法正确填充。有关解决办法的信息,请参阅已知局限性。
为获得最准确的结果,需确保您修改的源代码相关的覆盖率数据在 IDE 的覆盖率视图中可用。您需要将 Jtest 集成到您的单元测试执行中,以收集 XML 文件中的覆盖率数据或将其报告给 DTP,然后将数据导入您的 IDE。
测试和代码之间的关联信息会在 IDE 重启后持续存在——即使覆盖率视图在重启后不显示任何覆盖率数据。您可以通过将覆盖率数据从文件或 DTP 重新导入 IDE 来刷新关联。
定期重新导入最近一次测试运行的覆盖率数据可以确保与版本控制系统中源代码和测试的最新关联保持同步。 |
在 CI 服务器上使用集成了 Jtest 的构建工具(Maven、Ant 或 Gradle)运行单元测试时,会生成 coverage.xml
文件。如果所有单元测试都在一次测试运行中执行,您可以选择从文件中导入覆盖率数据。
配置单元测试执行作业,使用 Maven、Gradle 或 Ant 收集覆盖率数据。作业运行时,已执行测试的覆盖率将保存在服务器作业位置的 coverage.xml
文件中。配置您的作业,将文件保存在便于下载的位置。
如果您想要收集多个测试运行的覆盖率,可以选择从 DTP 导入覆盖率数据的选项。
您可以在受影响的单元测试视图中监控和重新运行因代码变更而受到影响的测试。在 IDE 菜单栏中选择 Parasoft> 显示视图> 受影响的单元测试可打开该视图。
Jtest 自动监控工作空间中所有打开的项目。默认情况下,该视图会实时显示哪些测试受到当前代码修改的影响 – 每次进行会影响测试的代码变更时,视图都会刷新以显示受影响的测试。若要关闭自动检测受影响测试的功能,可禁用视图菜单中的自动检测受影响的测试选项。
禁用该选项后则需要点击刷新按钮手动刷新。
您可以右键点击检测到的测试,选择转到,在编辑器中查看测试代码:
此外,受影响的单元测试视图还会显示:
要运行视图中显示的所有受影响的测试,可点击视图菜单中的运行所有测试按钮。
要运行受影响测试的子集,需选择要分析的项目、包、类和/或方法节点,点击视图菜单中的运行所选测试。
如果在受影响的测试视图中运行测试失败,可以运行和诊断单个测试。右键点击相应测试,然后选择使用单元测试助手运行。
若要停止测试执行,则点击视图菜单中的停止按钮。
注意:非默认包中的非公共 JUnit 5 测试类无法在受影响的单元测试视图中运行。在视图中,它们显示为不可用状态。
视图菜单中的实时单元测试按钮可以持续执行所有受影响的测试,并在后台自动收集它们的覆盖率数据。每次视图中受影响的测试更新时(启用自动检测受影响的测试选项,或者使用刷新按钮)都会运行测试。
测试运行后,视图中显示的测试状态将自动更新。
要为覆盖率视图收集覆盖率,需选择菜单中的收集覆盖率选项。这样,覆盖率视图就能向受影响的单元测试视图提供覆盖率数据,从而关联测试与覆盖的代码。
如果在受影响的测试视图运行测试失败,测试的结果和错误栈跟踪将显示在任务和任务详情视图中以供分析。
任务视图中显示任务的列表。
单个任务的详细信息可以显示在任务详情视图中。
要指定收集受影响测试的 Git 提交范围,可点击配置链接,并在受影响的测试设置对话框进行配置。
注意: