Развертывание Salesforce.com - PullRequest
       15

Развертывание Salesforce.com

1 голос
/ 19 апреля 2011

В настоящее время мы работаем над заказным проектом APEX для Salesforce.com, который включает в себя множество апекс-классов, триггеров и страниц Visualforce. У нас также есть многочисленные приложения от AppExchange, которые являются частью системы.

Мы разрабатываем все классы Apex, страницы Visualforce и т. Д. В тестовой среде, а затем разворачиваем их в реальной среде с помощью Eclipse IDE. Что происходит, так это то, что каждый раз, когда мы внедряем изменения в живую среду, все методы тестирования всех классов (в том числе из AppExchange Apps), похоже, выполняются. Таким образом, развертывание простого изменения может занять несколько минут.

Есть ли в apex способ «упаковать» классы по пространству имен или что-то в этом роде, чтобы при попытке развернуть изменение выполнялись только методы тестирования, относящиеся к этому пакету. Если что-то подобное существует, наше развертывание может произойти намного быстрее.

Ответы [ 3 ]

2 голосов
/ 25 апреля 2011

Это возможно, но вам нужно узнать об Apache Ant и взглянуть на набор инструментов Force.com Migration Toolkit. Затем вы можете использовать файл сборки, чтобы определить, какие файлы развернуты, а также какие тесты запущены.

Я занят написанием официального документа, который затронет эту и другие связанные стратегии развития ... Я опубликую в своем блоге, когда это будет сделано.

2 голосов
/ 19 апреля 2011

К сожалению, нет, нет частичного тестирования для развертывания кода Apex, каждое изменение, независимо от того, насколько мелким или автономным запускается полный тестовый запуск.Это, помимо прочего, обеспечивает применение метрик кода (например, минимальное общее покрытие кода)

ИМХО, это оказывается двусторонней монетой, когда речь заходит об обеспечении надежности кода.Когда мы начали использовать apex, все наши тесты были очень всеобъемлющими, выполняя реальное тестирование кода с множеством подтверждений и проверок.Затем у нас начались очень и очень длительные времена развертывания, поэтому теперь наши тесты выполняют одну-единственную функцию, удовлетворяя минимальному охвату кода, и даже при таком упрощении развертывание чего-либо занимает почти 3 минуты, и мы используем только 20% нашего допуска на код вершины.ИМХО2, Apex слишком медленен для платформы кодирования, чтобы проводить такого рода тестирование.Я даже не представляю, как долго продлятся тесты, если мы достигнем 50% -ного разрешения, не говоря уже о том, чтобы больше.

1 голос
/ 28 октября 2011

Если мы используем инструмент миграции 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

...