SikuliでXMLリポートを出力できるようになると、Jenkinsなどでちゃんと利用できるようになるので非常に便利です。
以前試したSikuli内のテストの機能では簡単にXMLが出せそうになかったので諦めていたのですが、unittest.pyを利用したらXML出力できるようになりましたので、その手順を紹介します。
なお、今回利用したのはSikuliXのベータ版である1.0-Beta999で、 現在の正式版である1.0.0での動作は確認していませんが、多分大丈夫ではないかと思います。
テストケースの作成
まず、テストケースを作成します。
以前の記事「シミュレータ上でのiOSアプリのGUIテストをSikuliで自動化する」のような、 暗黙のクラス宣言を利用せずに、Pythonのunittest.pyのTestCaseを継承したクラスを作成します。
とは言っても先頭にクラス宣言を付けてインデントさせるだけなので、ここでは省略します。
import unittest class MyTestCase(unittest.TestCase): def setUp(self): app_path = "/Applications/Xcode.app/.../iPhone Simulator" self.app = App(app_path) : def tearDown(self): self.closeAppIfRunning()
ただし、以前のものはJUnitを利用していたので、assert関連で利用できないメソッドがあったりする点には注意です。
なお、unittest.pyはsikuli-script.jarのLib内にあり、ここにあるPythonファイルはインポートすれば利用できるみたいです。
TextTestRunnerの設定
まずは、これがテストとして実行できるかどうかを試してみましょう。
Sikuliのソース末尾に次のようなコードを追加してください。
loader = unittest.TestLoader() module = __import__('__main__') test = loader.loadTestsFromModule(module) testRunner = unittest.TextTestRunner(verbosity=2) testRunner.run(test)
これで、SikuliX-IDE上でRunすると次のようなメッセージが表示されるでしょう。
testActionButtonClick (__main__.MyTestCase) ... ok testInitWindow (__main__.MyTestCase) ... ok ---------------------------------------------------------------------- Ran 2 tests in 10.548s OK
XmlTestRunnerの設定
XMLを出力できるTestRunnerを.sikuli内に追加して利用できるようにします。
unittest-xml-reportingを取得して解凍
src/xmlrunner/__init__.pyを.sikuliのフォルダ内にxmlrunner.pyとしてコピー
Sikuliのソース先頭に
import xmlrunner
を追加Sikuliのソース末尾のコードを次のように修正
loader = unittest.TestLoader() module = __import__('__main__') test = loader.loadTestsFromModule(module) testRunner = xmlrunner.XMLTestRunner(verbosity=2) # XMLTestRunnerにする testRunner.run(test)
これで、SikuliX-IDE上でRunすると次のようなメッセージが表示されるでしょう。
Running tests... ---------------------------------------------------------------------- testActionButtonClick (__main__.MyTestCase) ... OK (4.568s) testInitWindow (__main__.MyTestCase) ... OK (6.410s) ---------------------------------------------------------------------- Ran 2 tests in 10.979s OK Generating XML reports...
これで、TEST-MyTestCase–20130604004758.xmlのようなファイルが生成されているはずです。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。