SikuliX1.1.4に同梱のRobot FrameworkでLog.htmlにTake Screenshotのイメージが埋め込まれない
概要
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
*** Variables ***
*** Settings ***
Library OperatingSystem
Library TestLib.sikuli/TestLib.py
Library Screenshot ${OUTPUT DIR} width=640px
*** Test Cases ***
テストケース1
スクリーンショットを撮る ${TEST NAME}_Before
電卓を表示する
スクリーンショットを撮る ${TEST NAME}_After
*** Keywords ***
電卓を表示する
open_calc
スクリーンショットを撮る ${NAME}
Take Screenshot ${NAME}
TestLib.sikuli/Testlib.py(計算機の起動を待つ、簡単なSikuliスクリプト)
# coding: utf-8
from sikuli import *
# from __future__ import with_statement
class TestLib(object):
def open_calc(self):
self.calc = App.open("calc")
wait("1536568964767.png",1)
```
Robot_Run_01.sikuli/Robot_Run_01.py(Robotを起動するスクリプト。SikulixIDEから実行)
from threading import currentThread
prepareRobot()
workdir = getBundleFolder()
testdata = "sample.robot"
datasource = os.path.join(workdir,testdata)
# Log.htmlに画像が埋め込まれない現象の対処のため
# 下記サイトを参考にThead名を明示的に指定➡解消せず
# https://groups.google.com/forum/#!topic/rfw-users-jp/Z3YaEGgz3Wk
# https://answers.launchpad.net/sikuli/+question/294598
currentThread().name = 'MainThread'
robot.run(datasource,outputdir=workdir)
ためしたこと
- Thread名を明示的に指定した
こことここを見て、Thread名が"Mainthead"または"RobotFrameworkTimeoutThread"以外だと
logが呼ばれないということだったので、robot.run()をコールする前にThread名を明示的に指定したが改善されなかった。 - Debug用にコードを入れて状態を確認
改善されなかったため、念のためデバッグコードを入れ、Thread名を確認したが、期待通りMainthreadになっていた。
(** librarylogger.py )
Output.xmlでは期待通り"MainThread"となっている(画像へのリンクは埋め込まれている・・)
( output.xml**)