Robot FrameworkのSetupやTeardownでは、キーワードが1つしか指定できない

Robot Frameworkで、xUnit系にあるようなSetupやTeardownを使うことで、テストの実行前や実行後に必ず実施したいキーワードを指定できます。

 
ただ、SetupやTeardownではキーワードが1個しか指定できません。

そのことをいつも忘れるため、メモしておきます。

 

環境

  • Python 3.6.3
  • Robot Framework 3.0.2

 

実験

テストケース

  • SetupとTeardownのキーワードを1つにした場合
  • SetupとTeardownのキーワードを2つにした場合
  • SetupとTeardownのキーワードを1つにまとめた場合
  • SetupとTeardownのキーワードをRun Keywordsで複数同時に起動した場合

を作ってみます。

*** Keywords ***
セットアップキーワードをまとめた
    Log To Console  ${\n}セットアップ1です
    Log To Console  セットアップ2です

ティアダウンキーワードをまとめた
    Log To Console  ティアダウン1です
    Log To Console  ティアダウン2です


*** Test Cases ***

SetupとTeardownのキーワードを1つにした場合
    [Setup]  Log To Console  ${\n}セットアップです
    [Teardown]  Log To Console  ティアダウンです
    Log To Console  テスト本体です


SetupとTeardownのキーワードを2つにした場合
    [Setup]  Log To Console  ${\n}セットアップ1です  Log To Console  セットアップ2です
    [Teardown]  Log To Console  ティアダウン1です  Log To Console  ティアダウン2です
    Log To Console  テスト本体です


SetupとTeardownのキーワードを1つにまとめた場合
    [Setup]  セットアップキーワードをまとめた
    [Teardown]  ティアダウンキーワードをまとめた
    Log To Console  テスト本体です


SetupとTeardownのキーワードをRun Keywordsで複数同時に起動した場合
    [Setup]  Run Keywords  Log To Console  ${\n}セットアップ1です  AND  Log To Console  セットアップ2です
    [Teardown]  Run Keywords  Log To Console  ティアダウン1です  AND  Log To Console  ティアダウン2です
    Log To Console  テスト本体です

 
なお、Run Keywordsでは複数のキーワードを指定できます。

ただ、キーワードに引数がある場合には、キーワードの区切りに対して明示的に AND を入れる必要があります。

 
実行してみます。

$ robot test_setup_teardown.robot 
======================
Test Setup Teardown
======================
SetupとTeardownのキーワードを1つにした場合                            
セットアップです
.テスト本体です
.ティアダウンです
SetupとTeardownのキーワードを1つにした場合    | PASS |
-------------------------------
SetupとTeardownのキーワードを2つにした場合
セットアップ1です.テスト本体です
SetupとTeardownのキーワードを2つにした場合    | PASS |
-------------------------------
SetupとTeardownのキーワードを1つにまとめた場合
セットアップ1です
セットアップ2です
.テスト本体です
.ティアダウン1です
ティアダウン2です
SetupとTeardownのキーワードを1つにまとめた場合    | PASS |
--------------------------------
SetupとTeardownのキーワードをRun Keywordsで複数同時に起動した場合
セットアップ1です
セットアップ2です
.テスト本体です
.ティアダウン1です
ティアダウン2です
SetupとTeardownのキーワードをRun Keywordsで複数同時に起動した場合    | PASS |
---------------------------------
Test Setup Teardown    | PASS |
4 critical tests, 4 passed, 0 failed
4 tests total, 4 passed, 0 failed

実行結果より、 SetupとTeardownのキーワードを2つにした場合 の場合のみ、最初のキーワードしか実行されていないようです。

ただ、テスト自体はパスしてしまうため、そのことに気づきにくいです。

そのため、SetupとTeardownにはキーワードが1つしか指定できないことを覚えておいたほうが良さそうです。

 

ソースコード

GitHubに上げました。 builtin_library_samples/test_setup_teardown.robot ファイルが、今回作成したファイルです。
thinkAmi-sandbox/RobotFramework-sample: Robot Framewrok samples