我正在为销售人员开发自动化,我们正在将代码维护到 ORG 和 GIT 中。
我正在使用 Salesforce CLI,用于生成代码覆盖的命令是“sfdx force:apex:test:run”,它要求代码在 ORG 中可用。我们希望代码覆盖任务是独立的,是否可以在本地运行测试类?我得到了一些关于 ANT 工具的参考,但不确定它是否有帮助。我也可以使用其他一些编程工具。
我正在为销售人员开发自动化,我们正在将代码维护到 ORG 和 GIT 中。
我正在使用 Salesforce CLI,用于生成代码覆盖的命令是“sfdx force:apex:test:run”,它要求代码在 ORG 中可用。我们希望代码覆盖任务是独立的,是否可以在本地运行测试类?我得到了一些关于 ANT 工具的参考,但不确定它是否有帮助。我也可以使用其他一些编程工具。
您可以尝试运行“仅验证”部署(无论测试成功还是失败 - 它都会全部回滚,组织中实际上不会发生任何变化)。你仍然需要一个组织,没有像 Python/Java/PHP/C# 那样完全本地的 Apex 服务器......
常见的模式是为此浪费一个沙箱,将其称为“CI”,并在 Azure Devops 管道中使用 git 提交挂钩或适当的测试部署来尝试验证代码。您可以通过这种方式创建“谁破坏了构建”系统的早期警告。
提到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% 确定,因为我在这里部署的与组织中已有的相同,你必须尝试一下。但我看不出它为什么不工作的理由。它应该报告部署尝试中的内容,而不是已经存在的内容。