2016-12-29 9 views
1

私は本質的に、プロトラクター/ジャスミンE2Eテスト用のHTMLレポートに使用していたレポートツールを書き直さなければなりませんでした。今では、1つのテストファイルが実行されているすべてのテスト結果(たとえば、test1.spec.js)をファイルにうまく書き込むことができます。分度器/ジャスミンが完了したときの確認方法は? (レポーティングツールのロジック)

私の問題は、一度に複数のファイルを実行するときに発生します(例:['./test1.spec.js'、 './test2.spec.js'])。理想的には、両方のテストのすべての情報をfileDataオブジェクト/変数に格納し、すべてのテストファイルが完了したらその変数をファイルに書き込むことです。

私はjasmineDone関数で記述しようとしましたが、各テストファイルが完了した後に発生し、レポートからの情報を重複するか、レポートのスタイリングを上書き/上書きします。

this.jasmineDone = function() { 
    fileData += styles.closeReportTags; 
    fileData += styles.closeBodyHtmlTag; 
    fs.appendFileSync("C:/Reports/testing1.html", fileData); 
} 

は、私も自分の分度器の設定ファイルで定義されてafterLaunch方法を作成し、そのようにレポートツールのファイルで使用されている:上記で

this.afterLaunch = function (callback) { 
    fs.writeFile("C:/Reports/testing1.html", fileData); 
} 

を私はにすべてのテスト結果を追加してみました各実行中にfileData変数を読み込み、それが完了した後にすべてを書き戻しますが、fileDataはafterLaunchメソッドに正しく渡されないようです(ファイルに何も書き込まれず、空白のhtmlファイルが作成されます)。

私の質問は、実行中のカウントまたはフラグを保持して、実際のテスト実行がいつ実行されているか把握するために、より多くのテストファイルが分度器/ジャスミンのキューに入っているかどうかを判断できるようにすることです。私のファイルを書き込むためにそれをどの範囲で使うことができますか?

ありがとうございました。

答えて

1

私は同じ問題がありました。最終的に、ジャスミン/分度器で利用できるすべてのフックは十分ではありませんでした(特にシャーディングテストの場合)。私のために働いていたのは、自分のcliを作成し、私が望む結果を解析/保存して、そして次にという報告をしていました。

ここでは一例ですは、CLI:(。たとえば、chmod 755

#!/usr/bin/env node 

var spawn = require('child_process').spawn; 
var output = []; 

// get protractor args from cli, and skip first two (node and self) 
var args = process.argv.slice(2); 
// run protractor 
protractor = spawn('node_modules/.bin/protractor', args); 

/** 
* process listeners 
*/ 
protractor.stdout.on('data', function(buffer) { 
    var text = buffer.toString(); 
    // parse results here... 
    console.log(text); 
}); 

protractor.stderr.on('data', function(buffer) { 
    var text = buffer.toString(); 
    console.log(text); 
}); 

protractor.on('exit', function(status) { 
    // protractor is _done_ done, report your results here... 
}); 

が実行可能にファイルをchmodのようにしてください。そして、thuslyそれを実行します。

./myCI conf.js --baseUrl http://example.com

+0

私が実際にそのうちに何かを考え出し、私の現在のソリューションで働いていたが、私はまだあなたの方法に見ていることを計画!応答を感謝します。これは大きな頭痛ハハです。 –

+0

心配はいりません。ええ、これは痛みです... – Brine

関連する問題