私がどれほど混乱しているかをお見せできるかどうか見てみましょう。
変数をインラインで含むレタス機能ファイルを使用するだけで、すべてが機能します。たとえば、次の機能ファイルを作成するとします。
Feature: File Finder
I need to just look for the presence of certain files on a system
Scenario Outline: Verify the presence (or absence) of a file on a system
Given I log into a system at "172.16.100.23" as user "cadmin" with password "cadmin"
Then I can look for "/var/log/nginx.log" and know that it should "not" be there
それに対してレタスを実行すると、次の手順を作成するように指示されます。
You can implement step definitions for undefined steps with these snippets:
# -*- coding: utf-8 -*-
from lettuce import step
@step(u'Given I log into a system at "([^"]*)" as user "([^"]*)" with password "([^"]*)"')
def given_i_log_into_a_system_at_group1_as_user_group2_with_password_group2(step, group1, group2, group3):
assert False, 'This step must be implemented'
@step(u'Then I can look for "([^"]*)" and know that it should "([^"]*)" be there')
def then_i_can_look_for_group1_and_know_that_it_should_group2_be_there(step, group1, group2):
assert False, 'This step must be implemented'
そのヘッダー (「レタスのインポート ステップから」) とそれらのステップを filefinder.py フォルダーに貼り付け、「assert False」を「assert True」に変更してテストをパスさせると、見事にパスします。
Feature: File Finder
I need to just look for the presence of certain files on a system
Scenario: Verify the presence (or absence) of a file on a system
Given I log into a system at "172.16.100.23" as user "cadmin" with password "cadmin"
Then I can look for "/var/log/nginx.log" and know that it should "not" be there
1 feature (1 passed)
1 scenario (1 passed)
2 steps (2 passed)
ここで、例のテーブルをミックスに追加したいと思います。Then I can ask <manager> for <item>
3 番目のステップとして次の例の表を追加するだけです。
Examples:
| manager | item |
| "bob" | "raise" |
| "suzy" | "more switches" |
| "bill" | "more coffee" |
これに対してレタスを実行すると、次のように表示されます。
You can implement step definitions for undefined steps with these snippets:
# -*- coding: utf-8 -*-
from lettuce import step
@step(u'Then I can ask <manager> for <item>')
def then_i_can_ask_manager_for_item(step):
assert False, 'This step must be implemented'
そのため、それを filefinder.py ファイルに追加し、「assert False」を「assert True」に変更して、コンソールに緑色の色が表示されるようにします。<manager>
それに対してレタスを実行すると、プレースホルダーを認識せず<item>
、有効なステップを作成するかのように、まったく同じ応答が返されます。ここで説明されているようにプレースホルダーを使用している場合、要求されたステップを作成できないのはそのときだけです: http://lettuce.it/tutorial/scenario-outlines.html 例が「シナリオの概要: 階乗 [0-4]" は、[0-4] が必要かどうかわからないためです。私のテストではまったく違いがないように見えますが、例を使用した成功したテストがないため、完全に間違っている可能性があります。
私がしなければならないことは、レタスが " <placeholder>
" 構文を持つステップをインラインで認識しない理由を理解することです。
誰かが私のためにこれについていくつかの光を当てることができますか?