如何设置测试用例失败并在Casper js中传递消息?

时间:2015-06-10 10:51:26

标签: javascript phantomjs automated-tests casperjs

如何为失败和传递测试用例设置两个不同的测试消息,并在运行所有测试用例后如何获取所有失败的列表并传递可以在日志文件或xml文件中打印的消息。

什么是存储所有邮件并获得正确格式的更好方法。

这是我的Sample Home page.js

    HomePage = function () {

    var PageTestParams = TestParams.Modules.HomePage,
        PageLangText = Lang.Modules.HomePage;

    SearchResult = function(test){

    },
    SearchTextField = function(test){
        test.assertExists(PageTestParams.SearchFormSelector, PageLangText.SuccessMsg["SearchForm"]);
        SearchResult(test);
    },
    NavigationCount = function(test){
         test.assertElementCount(PageTestParams.NavigationSelector, PageTestParams.NavigationCount,PageLangText.SuccessMsg["NavigationCount"]);
         SearchTextField(test);
    },
    CheckTitle = function(test){
        test.assertTitle(PageTestParams.Title, PageLangText.SuccessMsg["TitleText"]);
        casper.test.pass("main fail ho gaya");
        NavigationCount(test);
    },
    this.init = function(test){
        CheckTitle(test);
    }
};

如果任何测试用例失败或传递相同的消息,我将传递此JS用于测试断言。我已经搜索并获得了以下语法,但是我打印了相同的消息,我在测试断言中设置了这个消息。

                        casper.test.on("fail", function(failure) {
                            casper.echo("FAIL " + failure.message);
                        });

2 个答案:

答案 0 :(得分:1)

在使用单个测试时获取两个不同的消息是我个人尚未遇到的。如果你想要一种解决方法,你可以做类似的事情:

var x=4;
if(x>2){
casper.test.pass("PASS Message.");
}else{
casper.test.fail("FAIL Message.");
}

您可以操纵if语句以获得布尔值或其他任何您喜欢的内容,但这似乎是我最明显的方式。 至于获取所有传递和失败消息的列表,我知道的程度是有getFailures();和一个getPasses();方法,这些可能或可能不是你想要的,但也许他们可以帮助你开始!祝你好运!

答案 1 :(得分:0)

你可以做这样的事情(成功或失败的逻辑相同): -

var successes = [];

casper.test.on("success", function(success) {
    successes.push(success);
});

然后在casper.run上你可以做几件事: -

1)要查看所有成功的完全转储(您可以看到所有属性),您可以这样做: -

casper.run(function () {
    test.done();
    require('utils').dump(successes);
});

2)逐个输出成功数组(所以你可以格式化输出)你可以这样做: -

casper.run(function () {
    test.done();

    successes.forEach(function(item){
        casper.echo(item.standard);
    });
});

3)我假设您知道您也可以通过传入--xunit=output.xml

将完整的测试断言输出到xunit