私は分度器を使用しており、タイムスタンプに基づいてファイル名でファイルを作成しようとしています。問題は、browser.sleep()を使用してタイムスタンプ(ファイル名を作成するために使用される)を作成する前に無作為に時間を待っていても、ファイル名は互いに約50ms以内です。分度器:現在の仕様をトラッキングする
if (instanceCount < 4) {
var randomNumber = Math.floor(Math.random() * (10000 - 500 + 1)) + 500;
console.log("instanceCount == " + instanceCount + "... sleeping " + randomNumber + " ms");
browser.sleep(randomNumber);
}
var date = new Date();
timeStamp = date.getMonth() + 1 + '-' + date.getDate() + '-' + date.getFullYear() + '-' +
date.getHours() + 'h' + date.getMinutes() + 'm' + date.getSeconds() + 's' + date.getMilliseconds() + 'ms';
fs.writeFileSync(filepath + timeStamp, 'utf8');
instanceCount = fs.readdirSync(filepath).length;
timeStamp変数は、browser.sleep()関数を無視しているようです。私は、約束を返す関数を使ってみましたが、それを働かせることはできませんでした。ここに私が思い付いたものです:私は正しい軌道に乗って、および/または、これは、フロー制御/実行の面で理にかなっている場合だ場合
var getTimestamp = function() {
return new Promise(function (resolve, reject) {
if (instanceCount < 4) {
var randomNumber = Math.floor(Math.random() * (10000 - 500 + 1)) + 500;
console.log("instanceCount == " + instanceCount + "... sleeping " + randomNumber + " seconds");
browser.sleep(randomNumber);
}
});
};
getTimestamp().then(function() {
var date = new Date();
timeStamp = date.getMonth() + 1 + '-' + date.getDate() + '-' + date.getFullYear() + '-' +
date.getHours() + 'h' + date.getMinutes() + 'm' + date.getSeconds() + 's' + date.getMilliseconds() + 'ms';
fs.writeFileSync(filepath + timeStamp, 'utf8');
},
誰かが私に言うことはできますか?
いくつかのファイルに任意のタイムスタンプを書き込もうとするのではなく、他の意味のあるファイルを書き込むための方法があります。あなたはジャスミン - 記者を使用し、連結を虚偽に使用することができます。これはspecでファイルを書き出します。このhttps://github.com/angular/protractor-cookbook/blob/master/jasmine-junit-reports/conf.js#L18を参照してください。ブロッキングプロキシ機能を使用してログを分離することもできます。プロキシをブロックする方法の詳細については、https://github.com/angular/blocking-proxyのreadmeファイルを参照してください。 – cnishina
私はjasmine-reportersを使ってみましたが、私が働くことができる唯一の方法はaddReporterメソッドでした。私は既にレポーターを私のコンソールに記録しています。タイムスタンプからファイルを命名するのはベストプラクティスのようには思えませんが、このコードから必要な主な機能は、指定された時点でフォルダ内のファイルの数を読み取ることです。ファイルそのものは重要ではなく、ファイル名をタイムスタンプとして持つことは、実行中の状況を示すのに役立ちます。私は何を意味するかを示すためにinstanceCount変数を使って質問を更新しました – Tom
これについて料理を試しましたか?スペックによってそれを分けるべきです。すべてのテストが1つのファイルに含まれている場合、1つのファイルしか生成されません。 – cnishina