Javascript 使用codeceptjs测试失败后继续

Javascript 使用codeceptjs测试失败后继续,javascript,node.js,puppeteer,codeceptjs,Javascript,Node.js,Puppeteer,Codeceptjs,我正在使用codeceptjs和puppeter来测试单页应用程序的端点是否已启动并具有正确的内容。我需要使用codeceptjs w/puppeter之类的东西,因为每个端点都必须呈现,因为页面上的大部分内容都是由AJAX请求检索的,如果使用常规PHP版本的codeception,就不会触发这些请求 我首先通过GET请求检索要测试的端点列表。然后我循环遍历它们并运行一些断言来检查是否存在各种元素。我面临的问题是,如果某个端点的某些内容丢失,测试将失败并立即退出,因此不会检查其余端点。我需要一种

我正在使用codeceptjs和puppeter来测试单页应用程序的端点是否已启动并具有正确的内容。我需要使用codeceptjs w/puppeter之类的东西,因为每个端点都必须呈现,因为页面上的大部分内容都是由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退出测试用例?如果没有,请有人提出另一种方法来完成我正在尝试的事情吗?谢谢

在hook之前将您的站点地图检索移动到suites中,存储结果,然后从每个url启动单个场景,怎么样?这样,在检查所有URL之前,它不会取消套件运行。请使用:


虽然这个答案提供了一些关于实现最终目标的更好方法的见解。它没有回答这个问题。
if (I.grabNumberOfVisibleElements(sitemap[i].element) == 0) {
  // element not found, use an action or logging
}