概要
SikulixにバンドルされているRobot Frameworkをつかっています。
テストケース(.robot)内にスクリーンショットを取得するキーワード(Take Screenshot)を記述すれば
Log.html内にテスト結果とともに
画面イメージが埋め込まれるはずなのですが、
埋め込まれずに困っています。
同様の事象は関連サイトにもあり、対処方法も実施しているのですが
デバッグコードを入れたところ、原因が異なっているようで
どうすれば埋め込まれるようになるのか困っているところです。
原因、対処についてご存じの方がいらっしゃいましたら、ご教示ください。
環境
- Windows7 Enterprise 64bit
- SikuliX 1.1.4
- Robot Framework(SikuliX 1.1.4にバンドルされているもの)
- Python 2.7.1(SikuriX 1.1.4にバンドルされているもの)
- SikulixIDE 1.1.4
やったこと
- ソースコード
Robot_Run_01.sikuli/sample.robot(robotのスクリプト)
RobotFramework
1 2*** Variables *** 3 4*** Settings *** 5Library OperatingSystem 6Library TestLib.sikuli/TestLib.py 7Library Screenshot ${OUTPUT DIR} width=640px 8 9*** Test Cases *** 10テストケース1 11 スクリーンショットを撮る ${TEST NAME}_Before 12 電卓を表示する 13 スクリーンショットを撮る ${TEST NAME}_After 14 15 16 17*** Keywords *** 18電卓を表示する 19 open_calc 20 21スクリーンショットを撮る ${NAME} 22 Take Screenshot ${NAME} 23 24
TestLib.sikuli/Testlib.py(計算機の起動を待つ、簡単なSikuliスクリプト)
Python
1# coding: utf-8 2from sikuli import * 3# from __future__ import with_statement 4 5class TestLib(object): 6 def open_calc(self): 7 self.calc = App.open("calc") 8 wait("1536568964767.png",1) 9
Robot_Run_01.sikuli/Robot_Run_01.py(Robotを起動するスクリプト。SikulixIDEから実行)
Python
1from threading import currentThread 2 3prepareRobot() 4workdir = getBundleFolder() 5 6testdata = "sample.robot" 7 8datasource = os.path.join(workdir,testdata) 9 10# Log.htmlに画像が埋め込まれない現象の対処のため 11# 下記サイトを参考にThead名を明示的に指定➡解消せず 12# https://groups.google.com/forum/#!topic/rfw-users-jp/Z3YaEGgz3Wk 13# https://answers.launchpad.net/sikuli/+question/294598 14currentThread().name = 'MainThread' 15 16robot.run(datasource,outputdir=workdir) 17
- 実行結果
(** SikulixIDE **)
(Log.html) 画像が埋め込まれるはずが、埋め込まれない
![
ためしたこと
- Thread名を明示的に指定した
こことここを見て、Thread名が"Mainthead"または"RobotFrameworkTimeoutThread"以外だと
logが呼ばれないということだったので、robot.run()をコールする前にThread名を明示的に指定したが改善されなかった。
- Debug用にコードを入れて状態を確認
改善されなかったため、念のためデバッグコードを入れ、Thread名を確認したが、期待通りMainthreadになっていた。
(** librarylogger.py )
Output.xmlでは期待通り"MainThread"となっている(画像へのリンクは埋め込まれている・・)
( output.xml**)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。