确定 Salesforce 部署的最低测试 运行
Determine Minimum Tests To Be Run For Salesforce Deploy
我已经设置了一个 GitHub 操作来根据拉取请求验证代码更改。我正在使用 Salesforce CLI 验证(在 PR 上)或部署(在 main
合并上)。
文档为我提供了几个选项来确定对此 deploy.These 的测试选项是 NoTestRun
、RunSpecifiedTests
、RunLocalTests
、RunAllTestsInOrg
。我目前这样使用 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 非常有可能导致您错过错误(即误报)。
我已经设置了一个 GitHub 操作来根据拉取请求验证代码更改。我正在使用 Salesforce CLI 验证(在 PR 上)或部署(在 main
合并上)。
文档为我提供了几个选项来确定对此 deploy.These 的测试选项是 NoTestRun
、RunSpecifiedTests
、RunLocalTests
、RunAllTestsInOrg
。我目前这样使用 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 非常有可能导致您错过错误(即误报)。