概要

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)
  • 実行結果
    (** SikulixIDE )
    ![イメージ説明](d6211972ecf64a3c94f4a05c10607d6a.png)
    (**Log.html
    ) 画像が埋め込まれるはずが、埋め込まれない
    ![![**Log.html**](e78e00646666f7bad250fb62b6d2f6c4.png)

ためしたこと

  • Thread名を明示的に指定した
    ここここを見て、Thread名が"Mainthead"または"RobotFrameworkTimeoutThread"以外だと
    logが呼ばれないということだったので、robot.run()をコールする前にThread名を明示的に指定したが改善されなかった。
  • Debug用にコードを入れて状態を確認
    改善されなかったため、念のためデバッグコードを入れ、Thread名を確認したが、期待通りMainthreadになっていた。

(** librarylogger.py )
![イメージ説明](6aa5db9b211a8212c340662a3e31379e.png)
Output.xmlでは期待通り"MainThread"となっている(画像へのリンクは埋め込まれている・・)
(
output.xml**)
![イメージ説明](176d86adcc2e2ab07a0aee16351f9e50.png)