Antビルドスクリプトを使用してApexクラスを実行する

私たちは、Antを使って自動ビルドを設定しています。静的リソースとして保存されているxmlファイルを読み込み、カスタムオブジェクトデータで検証していくつかの設定が有効であることを確認するなど、いくつかの起動アクティビティを実行する必要があります。いずれかのデータに不一致がある場合、ビルドが失敗することを望みます。だからこれを行うには、私は、次のことを行うだろうターゲットを作成することができます、蟻のタスクを作成しようとしている?
a。フォルダからxmlファイルである静的リソースをアップロードします。 b。
xmlファイルをカスタムオブジェクトデータと比較する頂点クラスを実行し、不一致がある場合はターゲットビルドに失敗します。
 あなたは、頂点クラスや視覚的な力のページを実行し、エラーを吐き出すアリターゲットを持つ方法を知っていますか? ありがとう
Buyan

ベストアンサー

bigassforce
の答え、プラットフォームの中立性Antスクリプト、そして Tooling
APIをAntから操作できるかどうか
私はこの解決策に取り組んだ。実際にはかなり時間がかかりましたが、私はそれを楽しんでおり、Salesforce
REST APIをAntから呼び出すための大きな可能性を示しています。とにかく、最初にアサートするデータは
assertdata.xml に含まれるターゲット組織に存在します。


    Burlington Textiles Corp of America
    Dickenson plc
    Edge Communications

以下は、 StaticResource
Apexを実行としてアップロードするデモAntスクリプトです(この場合はアカウントオブジェクト。このスクリプトでは、Antマクロ機能を使用して、複雑なビットを隠すようにしています。私は
ant-salesforce.xml マクロファイルをここにアップロードしました。
HTTPコールアウトをサポートするための追加のAntライブラリのダウンロード要件があります。



    

    

        <!-- Import macros -->
        

        <!-- Deploy the Static Resource -->
        

        <!-- Execute the following Apex code -->
        
            
 accountNames = new List accountRecords = [select Id from Account where Name in :accountNames];            
                System.assertEquals(accountNames.size(), accountRecords.size());

            ]]>

              

    


NOTE: To fail the build throw an exception or
as in the case above use the System.assert functions (which
actually work outside of a test context) from the Apex code (which
can call other Apex code in the org as well). I used the assert
approach in this demo as they felt more appropriate given the
nature of the code. However you can just as easily throw an
exception, that will also stop the build.

失敗のビルド出力は次のようになります…

BUILD FAILED
/ant-salesforce-demo/build.xml:19: The following error occurred while executing this line:
/ant-salesforce-demo/lib/ant-salesforce.xml:125: System.AssertException: Assertion Failed: Expected: 3, Actual: 2 AnonymousBlock: line 9, column 1

TOOLING API USAGE: The execute apex macro uses
the recently released execute Apex feature of the Tooling API. You
will also find in the macro file an example of uploading the
StaticResource via the Tooling API in the macro called
staticResource.toolingapi, which turned out to be
much much faster! However behaviour wise it would not overwrite the
file if it was already deployed. So I moved it aside and wrote an
Metadata API (sf:deploy) based one instead for now.

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です