3

Webdriver.io /Selenium テストがたくさんあり、ジャスミン テスト フレームワークを使用してテストを記述しているため、これらの指示に従って、ジャスミンを使用するように構成した wdio.conf.js ファイルがあります。

問題は、非常に動的/構成可能な広告/マーケティング ベースの Web アプリをテストしていて、テスト対象をテストするために大量の構成情報を渡す必要があることです。たとえば、コマンドラインで次のようなものを実行したいと思います:

> wdio --campaignId=123 --productId=456

wdio.conf.js ファイルの「onPrepare」関数/イベントを変更して、次のようにこれらのパラメーターを取得できます。

exports.config = {
    ....other options (snip)...

    framework: 'jasmine',

    jasmineNodeOpts: {
        defaultTimeoutInterval: 9999999,
        expectationResultHandler: function (passed, assertion) { }
    },

    onPrepare: function (config) {
        var campaignId = parseInt(process.argv[2]
            .replace('--campaignId=', ''));
        var productId = parseInt(process.argv[3]
            .replace('--productId=', ''));

        config.params = {
            campaignId: campaignId,
            productId: productId
        };
    }
};

...しかし、これらをジャスミン テストに渡す方法がわかりません。process.argv から読み取ろうとしましたが、campaignId および productId 引数がありません。

describe('Campaign Tests', function () {

    beforeEach(function(done) {
        browser
            .session(function(err, client) {
                var campaignId = parseInt((process.argv[2] || '')
                    .replace('--campaignId=', ''));
                var productId = parseInt((process.argv[3] || '')
                    .replace('--productId=', ''));

                // campaignId and productId are both NaN/undefined
            });
    });

    it('should test something...snip...

カスタム パラメータ/引数をジャスミン テストに渡すにはどうすればよいですか? それらを onPrepare のファイルに書き込んでから、ジャスミン テストでそのファイルを読み取ることができますが、これは少しハックに思えます。

4

1 に答える 1

6

この動作にアプローチするには、環境変数を使用することをお勧めします。

たとえば、次のようにテストを実行してVARIABLE=1 wdio wdio.config.jsから、テストで簡単にアクセスできますprocess.env.VARIABLE

gulp、grunt などのビルド ツールを使用している場合は、標準的な方法 ( gulp e2e --variable=1) でコマンド ラインを渡しprocess.env.VARIABLE、ビルド ツール タスク内で設定できます。

于 2015-11-25T15:49:54.870 に答える