使用codeceptjs测试失败后继续

时间:2018-08-08 01:43:44

标签: javascript node.js puppeteer codeceptjs

我正在将codeceptjs与puppeteer一起使用,以测试单个页面应用程序的端点是否正常运行并且是否具有正确的内容。我需要使用诸如codeceptjs w / puppeteer之类的东西,因为每个端点都必须渲染,因为页面上的许多内容都是由AJAX请求检索的,如果使用常规PHP版本的Codeception,则不会触发该请求。

我首先通过GET请求检索要测试的端点列表。然后,我遍历它们并运行一些断言以检查是否存在各种元素。我面临的问题是,如果缺少端点之一的某些内容,则测试将失败并立即退出,因此不会检查其余端点。我需要一种能够继续检查其余端点的方法。

Scenario('Test Endpoints From Sitemap', async (I) => {

    // get the sitemap
    var sitemap = await I.sendGetRequest("url/to/sitemap");
    sitemap = JSON.parse(sitemap.raw_body);

    for(i = 0; i < sitemap.length; i++){
        await I.amOnPage(sitemap[i].url); // load the endpoint
        I.seeElement(sitemap[i].element) // check for an element
    }

});

如果断言失败,是否可以不立即使用codeceptjs退出测试用例?如果没有,有人可以建议另一种方法来完成我正在尝试的工作吗?谢谢

2 个答案:

答案 0 :(得分:0)

代替I.seeElement(),使用:

if (I.grabNumberOfVisibleElements(sitemap[i].element) == 0) {
  // element not found, use an action or logging
}

答案 1 :(得分:-1)

如何在挂接前将套件中的站点地图检索移至其他位置,存储结果,然后从每个URL中启动单个方案?这样,它不会在检查所有网址之前取消套件运行