确定 Salesforce 部署的最低测试 运行

Determine Minimum Tests To Be Run For Salesforce Deploy

我已经设置了一个 GitHub 操作来根据拉取请求验证代码更改。我正在使用 Salesforce CLI 验证(在 PR 上)或部署(在 main 合并上)。

文档为我提供了几个选项来确定对此 deploy.These 的测试选项是 NoTestRunRunSpecifiedTestsRunLocalTestsRunAllTestsInOrg。我目前这样使用 RunLocalTests

sfdx force:source:deploy -x output/package/package.xml --testlevel=RunLocalTests --checkonly

我们与一些大型组织合作,他们的完整测试需要很长时间才能完成。我只想 RunSpecifiedTests 进行验证,但我不确定如何设置我的 GitHub 操作以动态知道要引入哪些测试。我在 CLI 文档中没有看到任何东西来确定这一点。

确实没有办法做到 100% 可靠。 Apex 代码的任何更改都有可能影响任何其他 Apex 代码。各种各样的声明性元数据更改,包括例如验证规则、查找字段过滤器、流程和流程、工作流规则和架构更改,可能会影响 Apex 代码的执行。

如果您想减少测试和部署运行时间,一些关键策略是:

  • 确保您的测试可以 运行 并行,这通常要快几个数量级。
  • 删除所有未对您的应用程序提供有意义验证的测试。
  • 将您的应用程序模块化到包中,可以 单独进行有意义的测试。然后,使用集成测试(无论是用 Apex 还是用其他工具编写,例如 Robot Framework)来验证新包版本之间的交互。

只有最后一个可以为您提供 真正 围绕特定代码行为建立边界并单独测试它的能力,尽管您始终仍然需要集成测试.

充其量,您可以建立某种在 Apex 类 和相关测试 类 之间映射的命名约定,但根据上述观点,使用这种策略来限制测试 运行s 非常有可能导致您错过错误(即误报)。