LoginSignup
5
4

More than 5 years have passed since last update.

Force.com Migration Tool でテスト実行!

Last updated at Posted at 2014-04-13

Salesforceで開発している人は、Eclipse Pluginを使っている人も多いかもしれませんが、私は断然Ant派だったりします。

Antを利用してデプロイを実行する場合には、Force.com Migration Toolを利用します。インストール方法などは本題ではないのでリンク先を見てもらえばと思います。

このForce.com Migration Toolを利用すれば、デプロイした後にテストを実行できます。やり方は、 sf:deploy タグの属性に runAllTests="true" を指定するだけ。
とはいえ、Salesforceのテストはそれなりに時間がかかってしまうため、テストコードが多くなってくるとタイムアウトしてしまうようになります。
そこで、タグ属性 maxPollpollWaitMillis を設定します。それぞれポーリングする最大回数、タイムアウトするまでのウェイト時間(ミリ秒)を設定できます。この値を適当に増やしてやることでタイムアウトせずテスト実行できます。

これで手軽にテスト実行できるようになります。

runAllTests の代わりに runTest を利用することで個別にテストクラスを指定できるようですが、簡易テストと本格テストを分けて作っているときくらいしか利用しないかもしれません。

注意点としては、Webページから実行しても同じですが、テスト実行中はアプリケーションを操作すると対象組織はレコードロックなどエラーが発生するため、開発や手動テストが続行できないことです。Force.comの開発組織は無料で使えるので、テスト用の組織を準備したほうがよいでしょう。

Force.com Migration Toolのサンプルにもほとんど書いてありますが、いちおうご参考まで。

build.xml

<project
    name="Sample usage of Salesforce Ant tasks"
    basedir="."
    xmlns:sf="antlib:com.salesforce">

    <property file="build.properties"/>
    <property environment="env"/>

    <target name="test">
        <sf:deploy
            username="${sf.username}"
            password="${sf.password}"
            serverurl="${sf.serverurl}"
            deployRoot="src"
            runAllTests="true"
            pollWaitMillis="${sf.maxWaitMillis}"
            maxPoll="${sf.maxPoll}"    
        />
    </target>
</project>

build.properties

sf.username = (UserName)
sf.password = (Password)
sf.serverurl = https://login.salesforce.com
sf.maxWaitMillis = 40000
sf.maxPoll = 100

CI(継続的インテグレーション)のネタとしては全然CIしてないのは気のせいです!

Enjoy Test!

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4