1

我正在为销售人员开发自动化,我们正在将代码维护到 ORG 和 GIT 中。

我正在使用 Salesforce CLI,用于生成代码覆盖的命令是“sfdx force:apex:test:run”,它要求代码在 ORG 中可用。我们希望代码覆盖任务是独立的,是否可以在本地运行测试类?我得到了一些关于 ANT 工具的参考,但不确定它是否有帮助。我也可以使用其他一些编程工具。

4

1 回答 1

1

您可以尝试运行“仅验证”部署(无论测试成功还是失败 - 它都会全部回滚,组织中实际上不会发生任何变化)。你仍然需要一个组织,没有像 Python/Java/PHP/C# 那样完全本地的 Apex 服务器......

常见的模式是为此浪费一个沙箱,将其称为“CI”,并在 Azure Devops 管道中使用 git 提交挂钩或适当的测试部署来尝试验证代码。您可以通过这种方式创建“谁破坏了构建”系统的早期警告。

https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_build_mdapi_staging.htm

提到sfdx force:mdapi:deploy --checkonly标志

如果您想对临时组织等使用“源”命令 - sfdx force:source:deploy --checkonly.


编辑以回答评论

是的,您也应该能够获得保险。

运行测试的“正常”命令采用-c类似于

sfdx force:apex:test:run -c --resultformat human --outputdir c:\redacted --loglevel error

(...)
=== Apex Code Coverage
ID                  NAME                       % COVERED           UNCOVERED LINES
──────────────────  ─────────────────────────  ──────────────────  ───────────────────────────────────────────────────────────────────────
01p3L0000004OaKQAU  names                     100%
01p3L0000004OaUQAU  redacted                  100%
01q3L0000004CyWQAU  to                        100%
01q3L0000004DM4QAM  protect                   100%
01p3L0000004UZGQA2  the                       94.23076923076923%  16,17,18
01p3L0000004QNRQA2  innocent                  86.04651162790698%  116,119,131,132,146,147,148,149,151,152,153,154,163,164,165,166,202,243
(..)

验证部署无法使用-c,因为它已经是--checkonly. 但你可以这样做

sfdx force:mdapi:deploy --zipfile myPackage.zip -c --testlevel RunLocalTests -w 1

=== Apex Code Coverage
NAME                       % COVERED  UNCOVERED LINES
─────────────────────────  ─────────  ───────────────────────────────────────────────────────────────────────
names                      86%        116,119,131,132,146,147,148,149,151,152,153,154,163,164,165,166,202,243
redacted                  100%
to                        100%
protect                   100%
the                        94%        16,17,18
innocent                  100%

Total Test Time:  6992.0

Successfully validated the deployment

我不能 100% 确定,因为我在这里部署的与组织中已有的相同,你必须尝试一下。但我看不出它为什么不工作的理由。它应该报告部署尝试中的内容,而不是已经存在的内容。

于 2020-05-04T13:22:22.547 回答