我正在使用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>
我搜索了文档,但一无所获......
答案 0 :(得分: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>
这样,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();
});
});
如果您不希望为以下测试套件和测试用例设置此新文件名,则需要记住要将其更改回来。
请参阅此gist for a complete example。
注意:这是内部属性,不在文档中。将来它可能会改变行为或全部删除。
答案 1 :(得分:0)
如果这是您想要的确切结果,请将文件名更改为xxx.js,结果将为classnname ='xxx'。