私の平等テストでは、HTML5キャンバス上に簡単に表示可能な、本当に直感的なグラフィック表現を持つ2つのデータ構造を比較する必要があります。Intern JSテストフレームワーク:ブラウザクライアントでテストの出力をカスタマイズできますか?
ミスマッチがどのように報告されるかを変更するプラグインを作成することができます。つまり、2つのキャンバスを並べて表示し、ユーザーが視覚的なテストを行うのを助ける追加のUI要素を表示できますか?
私はカスタムレポーターを見て始めました。これが私が思い描き始めたものです(簡単にするために、キャンバスはありません)。何の初期のグランドトゥルースがないため
define([], function() {
var MyReporter = function (config) {
this.document = config.document || window.document;
this.localStorage = config.localStorage || window.localStorage;
};
MyReporter.prototype.testStart = function (test) {
test.correctResult = this.localStorage.getItem("uts." + test.parent.name + "." + test.name);
};
MyReporter.prototype.testEnd = function (test) {
var me = this;
var div = this.document.createElement("DIV");
if (test.hasPassed) {
div.innerHTML = test.name + ": OK";
}
else {
if ("actual" in test.error && "expected" in test.error) {
div.innerHTML = test.name + ": Fail. Do you want to set '" + test.error.actual + "' as the new expected result?";
var btn = document.createElement("BUTTON");
btn.innerHTML = "Mark as correct";
btn.addEventListener("click", function() {
me.localStorage.setItem("uts." + test.parent.name + "." + test.name, test.error.actual);
}, false);
div.appendChild(btn);
}
else {
div.innerHTML = test.name + ": Fail.";
}
}
this.document.body.appendChild(div);
};
return MyReporter;
});
は基本的には、平等のアサーションエラーが発生した場合に出力をカスタマイズして、ユーザーが正しいと結果をマークするオプションが与えられている(私は正しいものにとしてこれを必要とし、何もない、ユーザは、実際のおよび予想されるグラフィック表現を検査し、それらを一度受け入れることになっている)。詳細に
私の実際の質問、:
- これは記者が備わっていますカスタムの適切な使用ですか?
- 特に、
testStart
イベントにtest.correctResult
を設定して、私のスイートで使用することに注意してください。これでいい? - 現在、私が書いた記者は、鈍い黒の&白ページを出力します。スタイリッシュな
HtmlReporter
ビジュアルを保持し、テスト結果ボックスの内部をカスタマイズするにはどうすればよいですか?私はHtmlReporter
をサブクラス化することを考えていましたが、その中に入る前にいくつかのフィードバックをお願いします。 - レポーターを単一のテストスイートに適用することは可能ですか?私にはいくつかのテストがあり、そのほとんどは伝統的です。私は自分のカスタムレポーターがそれらのために蹴り込むことを望んでいません。しかし、
reporters
の設定はconfigオブジェクトのグローバルです。これを回避する方法はありますか?