2016-12-23 5 views
4

私の分度器 - スクリーンショット - プラグイン私はディレクトリ名としてspecの名前を持つレポートディレクトリを作成したいと思います。で作成することが、私は私のテストを実行することを希望
分度器--specs my_spec.js conf.js

上記のコマンドを呼び出した後、レポート:仕様名は、分度器の実行時にパラメータとして渡されますディレクトリmy_spec.js(またはmy_spec)。
プラグインの設定は、conf.jsに含まれます。

conf.jsのプラグイン設定で分度器のパラメータ値を使用

plugins: [{ 
    package: 'protractor-screenshoter-plugin', 
    screenshotOnExpect: 'failure+success', 
    screenshotOnSpec: 'failure', 
    withLogs: false, 
    htmlReport: true, 
    screenshotPath: '',//I would like to put the --specs parameter value here 
    writeReportFreq: 'end', 
    clearFoldersBeforeTest: true 
}] 

任意のアイデアはどのように行うのか? conf.jsの分度器の '--specs'パラメータ値にアクセスするには?

+0

を助けるあなたは、以下の提案を試してみて、それが動作するかどうか私に知らせることができます! – AdityaReddy

答えて

0

あなたにすべての引数

を含む配列を与えるであろうprocess.argvを使用して分度器をトリガするときは、渡されたすべてのCLIの引数にアクセスすることができprocess.argv

プロセス上のNodejs文書から以下の抜粋を参照してください。 .argvプロパティは、Node.jsプロセスの起動時に引数 が渡された配列を返します。最初の 要素はprocess.execPathになります。 argv [0]の元の値 へのアクセスが必要な場合は、process.argv0を参照してください。 2番目の要素は、実行中のJavaScriptファイルへのパスの になります。残りの要素 は、追加のコマンドライン引数になります。あなたが必要な値を抽出するために、あなたのロジックを構築次にconf.js意志出力に

[ 'C:\\Program Files\\nodejs\\node.exe', 
    'C:\\Users\\aditya\\AppData\\Roaming\\npm\\node_modules\\protractor\\bin\\protractor', 
    'conf.js', 
    '--specs', 
    'demo2.js' ] 

以下、このような何かをprotractor conf.js --spec demo2.js

声明console.log(process.argv)を実行

。この特定の場合、(ファイル名の競合が発生しないように、拡張子なし)specs値を取得するには、以下の機能が

function getSpecsFromCLIArg() { 
    for (i = 0; i < process.argv.length; i++) { 
     if (process.argv[i] === '--specs') { 
      var specFile = process.argv[i + 1]; 
      return specFile.substr(0, specFile.indexOf('.')); 
     } 
    } 
} 
console.log(getSpecsFromCLIArg()) 

plugins: [{ 
    package: 'protractor-screenshoter-plugin', 
    screenshotOnExpect: 'failure+success', 
    screenshotOnSpec: 'failure', 
    withLogs: false, 
    htmlReport: true, 
    screenshotPath: getSpecsFromCLIArg(), 
    writeReportFreq: 'end', 
    clearFoldersBeforeTest: true 
}] 
+0

あなたの解像度は問題ありませんが、おそらくフレームワークがその価値を得るもっと簡単な方法を提供していると思っていました。とにかくありがとうございました! –

+0

文字列から '.js'を取り除くことが重要です。そうでなければエラーが発生します(明白です - ファイル名とディレクトリ名は同一ではありません)。 –

+0

はい、オフにするロジックを追加するには怠惰だった.js :)とにかくあなたの編集を承認しました。ありがとう! – AdityaReddy

関連する問題