2016-08-02 4 views
0

6つのテストを含むNode JSテストスイートを作成しています。各テストでは、私は私がクッキーに通過させる引数に等しい変数のブランドを渡しています、それは次のようになります。ノードJSテストスイートで、配列を引数として処理する

const Nightmare = require('nightmare') 
const path = require('path') 

const nightmare = Nightmare({ show: true }) 

var someTest = function(brand){ 
var brand = process.argv[2] 

    nightmare 
    .viewport(1300, 900) 
    .cookies.clear() 
    .cookies.set('brand', brand) 
    .wait('#auth-email') 
    .refresh() 
    .wait('#auth-email') 
    .screenshot(path.join(__dirname, new Date().getTime() + "3.png")) 
    .wait(2000) 
    .click('form[name=loginForm] [type=submit]') 
    .wait(2000) 
    .cookies.clear() 
    .end() 
    .then((res) => console.log('Successful')) 
    .catch((err) => console.error('Errror!')) 
} 

module.exports = someTest 

私が実行したとき、私はテストのすべての6つを実行しますindex.jsファイルを持っていますそれは、コマンドを使用して、私の端末に:私はの配列を実行できるようにしたいと思います。このindex.jsファイルで

someTest = require('./someTest.js') 

someTest(process.argv[2]); 

someTest2 = require('./someTest2.js') 

someTest2(process.argv[2]); 

:ノードindex.jsブランド(クッキー)、index.jsファイルは次のようになります以下のようにコマンドラインに次のように記述するのではなく、ブランド名(クッキー)を指定します。

var brand = ['cookie1', 'cookie2'] 

someTest = require('./someTest.js') 

someTest(process.argv[2]); 

someTest2 = require('./someTest2.js') 

someTest2(process.argv[2]); 

しかし、代わりに引数として配列を処理する方法がわかりません。ノードは私には新しく、私はまだ学んでいます。どんな洞察も大変ありがとうございます。助けてくれてありがとう:D

+0

は、なぜあなたは "someTest" 機能でブランドをつかうしていますか? –

+0

私はパラメータとして 'ブランド'を渡す必要があると思ったので、テストが実行され、それを取り出して正常に動作しました。 – nmays

答えて

0

yargsというライブラリをチェックアウトします。ここでは、始めるための簡単な例です:

index.js:ターミナルで

var argv = require('yargs').argv, 

    params = argv._, 
    // argv has a function called _ that represents an array of all args 

    param1 = params[0], 

    param2 = params[1], 

    param3 = params[2], 

    mydefaultval = {'cat': "i'm a cat"}, 

// or you could destructure 
    [param1, param2, param3=mydefaultval] = argv._; 

私が実行します。 $ node index.js myparam1 myparam2 myparam3

関連する問題