Salesforce.com部署

问题描述 投票:1回答:4

我们目前正在研究一个Salesforce.com自定义APEX项目,该项目涉及许多顶点类,触发器和Visualforce页面。我们也有来自AppExchange的大量应用程序,它们是系统的一部分。

我们在测试环境中开发所有Apex类,Visualforce页面等,然后使用Eclipse IDE将其部署到实时环境中。发生的事情是,每次我们将更改部署到实时环境中时,所有类的所有测试方法(包括来自AppExchange Apps的测试方法)似乎都在执行。因此,部署一个简单的更改可能需要花费几分钟。

顶点中是否有一种方法可以按名称空间或类似方式“包装”类,以便当我们尝试部署更改时,仅执行与该包装相关的测试方法。如果存在这种情况,我们的部署可以更快地进行。

deployment salesforce apex-code
4个回答
2
投票

[不幸的是,无论多么微小或自给自足地触发完整的测试运行,都没有对顶点代码的部署进行任何部分测试,每一次更改。除其他外,这可以强制执行代码指标(例如,最小的总代码覆盖率)

恕我直言,在执行代码可靠性方面,这被证明是两面的。当我们开始使用apex时,我们所有的测试都非常全面,对代码进行了实际的测试,其中包含许多断言和检查。然后,我们开始拥有非常长的部署时间,因此现在我们的测试仅提供一种功能,满足最小的代码覆盖率,即使进行了这种简化,部署任何内容也要花费近3分钟的时间,而我们只使用了20%的顶点代码余量。IMHO2,Apex对编码平台来说太慢了,无法执行这种测试。我什至无法想象如果我们达到50%的配额,测试将运行多长时间,更不用说了。


2
投票

这是可能的,但是您需要了解Apache Ant并查看Force.com迁移工具包。然后,您可以使用构建文件来确定部署了哪些文件以及运行了哪些测试。

我正在忙着写一份白皮书,该白皮书将探讨此策略以及其他相关的开发策略。完成后,我会将其发布到我的博客中。


1
投票

如果我们使用apache ant迁移工具,我们有许多部署选项喜欢deployCodeFailingTest将跳过测试类如果您只想运行特定的测试类请使用:ur build.xml中与此类似的东西

<target name="deployCode">
`<sf:deploy`
username="${sf.username}"
password="${sf.password}"
serverurl="${sf.serverurl}"
deployroot="codepkg">
<runTest>SampleDeployClass</runTest>
</sf:deploy>
</target>

有关详细参考,请使用此链接http://www.salesforce.com/us/developer/docs/daas/salesforce_migration_guide.pdf


0
投票

我建议采用以下方法:

  1. 将Git作为所有sf代码的存储库
  2. 詹金斯将您的代码部署为CI / CD
  3. PMD作为静态代码分析器
  4. sfdx作为jenkins中用于部署的部署方法。

请参阅Trailhead链接:https://trailhead.salesforce.com/users/strailhead/trailmixes/architect-dev-lifecycle-and-deployment

© www.soinside.com 2019 - 2024. All rights reserved.