メインコンテンツまでスキップ
バージョン:23.4

コマンドラインからの実行

Eggplant Functionalのスクリプトやスイートはコマンドラインから実行することができます。これにはいくつかの理由があります:

  • GUIモードでスクリプトを開発し、実行しながら、コマンドラインからEggplant Functionalを1つ以上のインスタンスでテストを実行することができます。
  • 新しいビルドのスモークテストを行うために、製品ビルドスクリプトの最後にEggplant Functionalへのコマンドライン呼び出しを追加することができます。
  • Windowsのスケジュールされたタスク(またはMacとLinuxのcrontabatコマンド)を使用して、特定の時間にEggplant Functionalスクリプトを実行するようにスケジュールすることができます。

コマンドラインからの実行がEggdriveを使用するのに対して適切なアプローチである場合のヒントについては、Eggdrive vs. Command Line Executionを参照してください。

注記

AskコマンドとAnswerコマンドは、コマンドラインから実行するときに入力を求めることはありません。Eggplant Functionalスクリプトをコマンドラインから実行し、AskコマンドやAnswerコマンドがスクリプトに含まれている場合は、ユーザーから取得する予定の情報のデフォルト値を設定するべきです。

Eggplant Functionalの各インスタンスはライセンスが必要です。GUIとコマンドラインから同時にEggplant Functionalを使用するためには、少なくとも2つのライセンスが必要です。

Eggplant Functionalのスクリプトはコマンドラインから2つの方法で実行することができます:

  • Eggplant FunctionalのGUIを起動せずにスクリプトを実行するrunscriptコマンド
  • Eggplant FunctionalのGUIを起動し、その後にスクリプトを実行するEggplantコマンド

runscriptまたはEggplantコマンドを使用しているとき、コマンドがライセンスを取得できない場合があります(すべてのライセンスが使用中のため)。ライセンスが利用可能でない場合、実行中のコマンドはすぐに終了し、エラーコード127を表示します。より良い経験のために、-MaxWaitForLicense MAX_SECONDSパラメータを渡すと、コマンドはMAX_SECONDS期間(秒単位)までライセンスサーバーまたはサーバーに対してライセンスの問い合わせを続けます。使用中のコマンド(runscriptまたはEggplant)がMAX_SECONDS時間枠内にライセンスを取得した場合、それは正常に開きます。

Runscriptコマンド

runscriptコマンドはコマンドラインからEggplant Functionalを起動し、Eggplant FunctionalのGUIを表示せずにスクリプトを実行します。以下のようにrunscriptコマンドを実行します:

  1. runscriptコマンドの完全なパスと名前を入力し、その後にスペースを入力します。
  2. 実行するスクリプトの完全なパスと名前を入力します。
  3. 追加のスクリプトごとに、スペースを挿入し、それぞれの完全なパスと名前を入力します。
重要

重要: Eggplant Functionalのバージョン18.0以降のMacへのインストールでは、runscriptコマンドを呼び出すパスが/Applications/Eggplant.app/Contents/MacOS/runscriptに変更されました。エラーを防ぐために、Eggplant Functionalの以前のバージョンで作成されたテストを更新する必要があるかもしれません。また、Eggplant > Preferences > Run PreferencesInstall runscript in /usr/bin/localボタンをクリックして、runscriptコマンドをユーザーパスに追加することもできます。これにより、runscriptをコマンドライン経由で任意のディレクトリから呼び出すことが可能になります。

Eggplant FunctionalをMacで実行し、18.0より古いバージョンを使用している場合、runscriptコマンドのパスは/Applications/Eggplant.app/runscriptのままです。

例:

Mac:

/Applications/Eggplant.app/Contents/MacOS/runscript /Users/Alex/Documents/appTests.suite/Scripts/test1.script /Users/Alex/Documents/appTests.suite/scripts/test2.script

Windows:

"C:\Program Files\Eggplant\runscript.bat" "C:\Users\Alex\My Documents\MySuite.suite\Scripts\test1.script" "C:\Users\Alex\My Documents\MySuite.suite\Scripts\test2.script"

Linux

runscript ~/Documents /appTests.suite/Scripts/test1.script ~/Documents /appTests.suite/Scripts/test2.script

Eggplant Functionalは、各スクリプトの実行結果をそのスクリプトのスイートのResultsフォルダに保存します。その後、すべてのスクリプトが実行完了した後、Eggplant Functionalは成功したスクリプトの数を返り値として報告します。

ノート

LinuxのEggplant Functionalのインストールは環境変数を設定するため、runscriptコマンドをその名前のみで任意のディレクトリから呼び出すことができます。

注記

Eggplant Functional レポート スクリプトを失敗ではなく成功させるには、-ReportFailures フラグを いいえに設定します です。コマンド ライン オプションの詳細については、「コマンド ライン オプション」を参照してください。

注記

AskコマンドとAnswerコマンドは、コマンドラインから実行された場合には入力を求めません。これらのコマンドをスクリプトに含むこのアプローチを使用する予定の場合、ユーザーから取得する情報のデフォルト値を設定する必要があります。これらのコマンドの使用方法については、User Interactionを参照してください。

GUI を使用しない Linux マシンでの Runscript の使用

AWS インスタンス、Docker コンテナ、SSH 接続、または GUI が存在しないその他の状況など、GUI を持たない Linux マシンで EPF スクリプトを実行する場合は、-GSBackend を含めることができます。 runscript コマンド のオプション。例えば:

For Ubuntu 22

runscript ~/Documents/Scripts/test.script -GSBackend libgnustep-headless

Ubuntu 16.04、CentOS 7.x、または Red Hat Enterprise Linux (RHEL) 7 を使用している場合は、-GSBackend libgnustep-back-headless 構文を使用する必要があります。

Eggplantコマンド

Eggplantコマンドは、コマンドラインからEggplant FunctionalのGUIを開きます。アプリケーションを開いてスクリプトを実行するために使用することも、単にアプリケーションを開くために使用することもできます。

Mac

/Applications/Eggplant.app/Contents/MacOS/Eggplant

Windows

"C:\Program Files\Eggplant\Eggplant.bat"

Linux

Eggplant
注記

LinuxのEggplant Functionalのインストールは環境変数を設定するため、Eggplant GUIアプリケーションをその名前のみで任意のディレクトリから起動することができます。

注記

コマンドラインからEggplant FunctionalのGUIを起動すると、標準出力は端末に表示されません。代わりに、それはあなたのユーザーアカウントのApplication Support\Eggplantディレクトリにログとして保存されます。

スクリプトにパラメータを渡す

Eggplant Functionalは、コマンドラインから実行する場合でもスクリプトにパラメータを渡すことをサポートしています。単一のパラメータ、複数のパラメータ、複数のパラメータのパラメータと値のペア、さらにはリストまで渡すことができます。パラメータ値は、それらに先行するスクリプトにテキスト文字列として渡されます。これをコマンドで複数のスクリプトを実行する場合には注意してください。

スクリプトにパラメータを渡すためには、各パラメータ値の前に-param引数を置く必要があります。この引数をいつ使用するかとその使用方法の例については、-paramを参照してください。

注記

このセクションの情報では、パラメータを渡すことについて話すときに以下の用語を使用します。

  • parameters という用語は、スクリプトに渡すものを指します。
  • パラメータ値 という用語は、スクリプトのパラメータに対して渡す値を指します。
  • 引数 という用語は、runscriptまたはEggPlantコマンドに渡すオプションを指します。例えば、-paramは引数です。これらの引数のリストについては、コマンドラインオプションを参照してください。

スケジュール内のスクリプトにパラメータを渡す

コマンドラインからスケジュールを実行している場合、スイートの後に指定したパラメータは、スケジュール内で実行される各スクリプトに渡されます。

パラメータの渡し方

以下は、-paramを使用してコマンドラインでスクリプトにパラメータ値を渡すための構文とルールです:

  1. runscriptまたはEggplantコマンドを最初に提供し、スペースを開けてください。詳細は、上記のRunscriptコマンドまたはEggplantコマンドを参照してください。

    注記

    runscriptまたはEggplantコマンド、スクリプト、またはスイートへのフルパスを提供する必要があるかどうかは、コマンドを実行するときにいるディレクトリによります。Linuxでは、Eggplant Functionalのインストーラーは変数を設定するため、runscriptまたはEggPlantコマンドへのパスを提供する必要はありません。

  2. 実行したいスクリプトを指定し、スペースを開けてください。

  3. スクリプトの直後に-param引数を提供し、スペースを開けてください。

  4. スクリプトに渡したいパラメータ値をダブルクォーテーションで囲って提供します。複数のパラメータを渡す必要がある場合、それぞれに-param引数を指定する必要があります。

注記

複数のスクリプトを実行している場合、各スクリプトに適切なパラメータ値を持つ-paramを含める必要があります。

注記

スクリプト名の前にパラメータを指定してデフォルトのパラメータとしても指定できます。スクリプト名のに任意のパラメータを含めると、それらのパラメータはスクリプトに渡されます。

スケジュールとともにスクリプトを実行する

Eggplant Functionalのschedulesは、連続して実行したいスクリプトをまとめることができます。スケジュールについての詳細は、Eggplant Functionalスケジュールを使用したスクリプトの実行を参照してください。

スケジュールを実行している場合、スケジュールを含むスイートへのフルパス、オペレーティングシステムに適したスラッシュ、そしてスケジュール名をrunscriptまたはEggplantコマンドとともに使用します。

Mac

/Applications/Eggplant.app/Contents/MacOS/runscript /Users/Sam/appTests.suite/Schedule1
/Applications/Eggplant.app/Contents/MacOS/Eggplant/Eggplant /Users/Sam/appTests.suite/Schedule1

Windows

"C:\Program Files\Eggplant\runscript.bat" "C:\Users\Alex\My Documents\MySuite.suite\Schedule1"
"C:\Program Files\Eggplant\Eggplant.bat" "C:\Users\Alex\My Documents\MySuite.suite\Schedule1"

Linux

runscript ~/Documents/appTests.suite/Schedule1
Eggplant ~/Documents/appTests.suite/Schedule1
注記

スイート名のみを指定した場合、このコマンドはスイート内の最初のスケジュール(アルファベット順)を実行します。実行するスケジュールがない場合、Eggplant Functionalは「実行するスクリプトがありません」というエラーを返します。スケジュールでスクリプトを実行する詳細については、Eggplant Functionalスケジュールを使用したスクリプトの実行を参照してください。

注記

Eggplant Functionalは、各スクリプトの結果をそのスクリプトのスイートのResultsフォルダに保存します。そして、すべてのスクリプトとスイートが実行を終えた後、Eggplant Functionalは成功したスクリプトとスイートの数を戻り値として報告します。スイートは、それに含まれるすべてのスクリプトが成功した場合に成功とされます。

注記

これは、-RunOnLaunchコマンドラインオプションとともに使用できます。

注記

スイートのディレクトリリストにスケジュールの名前は表示されません。

テーブルテストの実行

キーワード駆動テストは、テストしたい機能を表すキーワードを外部テーブルに使用し、各キーワードの引数(データ)を提供することを可能にします。キーワード駆動テストは、runscriptコマンドを使用してコマンドラインから実行できます。このコマンドに続いて実行するテーブルへのパスを指定します。キーワード駆動テストについての詳細は、テーブル機能とキーワード駆動テストを参照してください。

例:

Mac

/Applications/Eggplant.app/Contents/MacOS/runscript /Users/Greg/Documents/AppTests.suite/TableScripts/TableName.table

Windows

"C:\Program Files\Eggplant\runscript.bat" "C:\Users\Alex\nobr>My Documents\AppTests.suite\TableScripts\TableName.table"

Linux

runscript ~/Documents/appTests.suite/TableScripts/TableName.table

Gherkin機能の実行

Gherkinテストをコマンドラインから実行するには、runscriptコマンドを使用します。このプロセスは、基本的にはSenseTalkスクリプトを実行するのと同じです。

Mac:

/Applications/Eggplant.app/Contents/MacOS/runscript /Users/<username>/Documents/ePFSuites/gherkin.suite/Features/test1.feature -CommandLineOutput Yes

Windows:

"C:\Program Files (x86)\Eggplant\runscript.bat" "C:\Users\<username>\Documents\FeatureImageEdit.suite\Features\test1.feature"

上記の両方の例では、runscriptコマンドへのフルパスの後に、実行したい.featureファイルのフルパスと名前を入力します。また、-paramステートメントでrunscriptコマンドにパラメータとしてタグを含めることもできます。