1

casperjs を使用して自動化されたインターフェイス テストを実行し、最終的に XUnit に似た XML 出力ファイルを生成します。テストクラス名をオーバーライドまたは手動で設定する方法はありますか? たとえば、出力ファイルには次のものがあります。

<testcase name="Found an element matching: .headerProfile" classname="test/casperjs/casper-test" time="0.002"></testcase>
<testcase name="Found an element matching: .headerCalendarTab" classname="test/casperjs/casper-test" time="0.003"></testcase>
<testcase name="Found an element matching: .headerMetricTab" classname="test/casperjs/casper-test" time="0.002"></testcase>

私はを頂きたい:

<testcase name="Found an element matching: .headerProfile" classname="xxx" time="0.002"></testcase>
<testcase name="Found an element matching: .headerCalendarTab" classname="xxx" time="0.003"></testcase>
<testcase name="Found an element matching: .headerMetricTab" classname="xxx" time="0.002"></testcase>

ドキュメントを検索しましたが、何も見つかりませんでした...

4

2 に答える 2

2

currentTestFileオブジェクトのプロパティを変更できcasper.testます。これは、ファイル全体または単一のテスト ブロックに対して行うことができます。

完全なテスト ファイルの場合、先頭に次の行を追加できます。

casper.test.currentTestFile = "newFileName.js";

これにより、

<testsuite name="test1" tests="1" failures="0" errors="0" time="0.063" timestamp="2014-07-01T15:37:26.546Z" package="newFileName">
    <testcase name="was true" classname="newFileName" time="0.063"></testcase>
    <system-out></system-out>
</testsuite>

このようにしてpackage、テストスイートとテストケースclassnamenewFileName.

テストケースのみを変更したい場合は、次のようにファイル名を上書きする必要があります。

casper.test.begin("test2", function suite(test){
    var oldfile = test.currentTestFile;
    test.currentTestFile = "newFile.js";
    casper.start().then(function(){
        test.assert(true, "was also true");
    }).run(function(){
        test.currentTestFile = oldfile;
        test.done();
    });
});

この新しいファイル名を次のテスト スイートおよびテスト ケースに設定したくない場合は、元に戻すように注意する必要があります。

完全な例については、この要点を参照してください。

注: これはドキュメントに記載されていない内部プロパティです。将来的には、動作が変更されるか、完全に削除される可能性があります。

于 2014-07-01T15:52:11.060 に答える