私はCucumberフレームワークに不慣れです。 CucumberをPythonで動作させようとしています。機能ファイルを作成しましたが、Pythonでステップ定義を作成する方法を知りたいです。
インターネットで検索したところ、Ruby言語のステップ定義が見つかりましたが、Pythonの場合は何もありません。PythonでCucumberを実行することも可能ですか?
Cucumberは現在、Jythonとも呼ばれるJVM上のPythonを含む14の言語をサポートしています。
Cucumber-JVM を読むことから始めます。これは、JVM用のCucumberの実装です。 Java 6/7を使用して、CucumberAPIを使用できるようにします。どの正規表現が各メソッドと相関するかをCucumberに伝えるために、Pythonアノテーションを使用してJavaメソッドを作成する必要があります。
これは多くの間接参照のように聞こえますが、かなり簡単です。
ガーキン:
Scenario: Some cukes
Given I have 48 cukes in my belly
Python/Jython:
@Given('^I have (\d+) cukes in my belly')
def i_have_cukes_in_my_belly(self, cukes):
print "Cukes: " + cukes
これは、各コードサンプル(ガーキンではなくステップ定義)の隅にある キュウリリファレンスページ からコピーされたもので、選択した言語を選択できます。
ドキュメントは不完全ですが、完全な場合は役に立ちます。 maven構成のエントリ を使用している場合は、それと基本的な使用に必要なほとんどの情報が含まれます。 Javaのキュウリに関するWebの他の場所にあるドキュメントは、 JythonからJavaを呼び出す に精通している限り、Jythonで機能するはずです。
behave、ビヘイビア駆動開発ライブラリ、Pythonスタイル。
ビヘイビア駆動開発(またはBDD)は、開発者、QA、およびソフトウェアプロジェクトの非技術者またはビジネス参加者間のコラボレーションを促進するアジャイルソフトウェア開発手法です。この哲学をさらに説明するページがあります。
behaveは、Pythonコードでバックアップされた、自然言語スタイルで記述されたテストを使用します。
キュウリは使用していませんが、再利用できます.feature
ファイルは同じGherkin言語を使用しているためです。
サンプル動作のステップ定義:
from behave import *
@given('we have behave installed')
def step_impl(context):
pass
@when('we implement a test')
def step_impl(context):
assert True is not False
@then('behave will test it for us!')
def step_impl(context):
assert context.failed is False