2009年9月19日土曜日

#appengine の単体テスト環境でTaskQueueを有効にする

有効に、といっても、defaultQueue()に関しては特に何もしなくても問題なくQueueFactory.getDefaultQueue().add()できます。queue.xmlで独自に追加したQueueを使用する方法について。簡単な事だけど、一瞬困ったのでメモ書き。

単体テストの最初に行う準備処理のApiProxy.setDelegate(new ApiProxyLocalImpl(new File(folderName)) {}で指定するフォルダのWEB-INF直下にqueue.xmlをコピーするだけでした。よくよく考えたらソースを追いかけるまでもなかったですね…。うっかりソースを深追いしてしまってますたw

File dstQueueXmlFile = 
  new File(folderName + (folderName.endsWith(File.separator) ? "" : File.separator) 
  + "WEB-INF" + File.separator + "queue.xml");
FileUtils.copyFile(new File(srcQueueXmlPath), dstQueueXmlFile);

自分の場合は上記のようにしてやってます。folderNameってのがApiProxyLocalImplのコンストラクタに渡すテスト用のフォルダ名です。

コメントを投稿