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和测试用例classname将是newFileName.

如果您只想更改测试用例,则需要以这种方式覆盖文件名:

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 回答
0

如果这正是您想要的结果,请将您的文件名更改为 xxx.js,您的结果将是 classnname='xxx'。

于 2013-08-25T04:09:37.503 回答