2017-05-04 7 views
0

私は現在、ハードコードされたURL browser.url("http://www.x.com");URLをコマンドラインから私のGherkinテストに渡すにはどうすればよいですか?

と私のガーキンテストを実行していると私はgherkin start [url]

を経由して、私のテストを実行するには、私は私のテストを開始するには、私のコマンドラインで入力したものは何でもURL取ることができる方法はあります私のbrowser.urlコールでは、ハードコーディングされたURLの代わりになりますか?私はGherkinで書かれたテストを実行するためにSelenium-webdriverとドッカーを使用しています。

答えて

0

短い回答はです。、残念ながらです。あなたが指摘したように、あなたのURLにという値がハードコードされたがあります。

しかし、問題を簡単に解決できるように、また希望の結果を得るための小さな変更が必要です。

1.あなたは基本的にNodeJSのためのセレンバインディングの実装ですWebdriverIOを、使用しているので、我々は実際にノードの使用は、ビルド内のオブジェクト、我々の場合global objectprocess.envに行うことができます

まず、あなたのテストで、browser.url("http://www.x.com");のURLを変数に置き換えてください(browser.url(myUrl);など)。

次に、プログラムヘッダに変数:var myUrl = process.env.URL ? process.env.URL : "http://www.x.com"を宣言します。これはNodeに "このプロセス環境変数が設定されている場合はそれを返し、それ以外の場合は以前の値(ハードコーディングされた値)を与えてください"と伝えます。

最後に

、ちょうどそうのように、ご希望の値を持つ変数を追加し、コマンドラインからテストを実行している:

$ URL="yourUrlHere" gherkin start 

2.あなたはWebdriverIOを使っているので、私は強く希望完全なツールスイートを使用して、より優れたテスト環境を活用することをお勧めします。 *はその未使用wdio.config.jsは、このように *

を提出に向けて悲しみに見えるが、私は彼らのTestrunner見てみると、トレーニングセクションを通過することをお勧めします。あなたがGherkinを使いたいと思っているなら、心配しないでください! WebdriverIOは、キュウリを使用するキュウリ(また、モカまたはジャスミン)と美しく統合されています。

あなたの問題は、wdio.config.jsファイルを介して簡単な設定変更に変換されます。

これが役立つかどうか教えてください。私はおそらく他のいくつかのソリューションを募集することができます。乾杯!

+0

この回答ありがとうございます。私は現在仕事に戸惑っていますが、私がチャンスを取ってすぐにこれを実装し、結果に戻ってきます。 – Billy

+0

さて、私はこれを打つことができましたが、 'TypeError:http://www.url.com.urlは関数ではありません。 'というエラーを私に与えています。それについての考えは?上記で述べたようにすべてを実装し、 'process.env.URL'コードで' .URL'を削除し、次にもう一つ、 'process.env'の両方を削除して遊びました。どちらも同じエラーがあったか、ちょうどタイムアウトになりました – Billy

+0

@Billyあなたの投稿を編集してさらに情報を追加できますか?デバッグが簡単になり、ソリューションを見つけることができます。 'package.json'の依存関係が最初に気になることでしょう。そうでなければ、私は同じ間違いをして、あなたの設定に合わない解決策を提案します。 ** WebdriverIO **の設定を使用しているので、 'wdio wdio.config.js'でテストを実行することを検討しましたか? – iamdanchiv

関連する問題