【问题标题】:Output all failures instead of one in TestCafe在 TestCafe 中输出所有失败而不是一个
【发布时间】:2019-01-31 14:49:20
【问题描述】:

如何在运行测试时显示所有失败。

test('test case', async (t) => ){
   await t.expect(1).eql(2);
   await t.expect(3).eql(4);
}

我得到了什么(第一次失败,然后停止):

1) AssertionError: 预期 '1' 与 '2' 完全相等

我想要什么(所有错误数据):

1) AssertionError: 预期 '1' 与 '2' 完全相等

1) AssertionError: 预期 '3' 深度等于 '4'

【问题讨论】:

  • 已在此处回答:stackoverflow.com/questions/52614503/… 简而言之,您必须将单个测试拆分为多个测试才能在一次运行中查看所有失败
  • 感谢您的回答。我的问题比这要复杂一些。我创建了一个函数,其中迭代 400 多个对象并检查是否正确。放入 400 个测试用例效率不高。我希望记者插件有一些解决方法,有人发现导出这些数据。
  • 我能想到的唯一选项是不使用 testcafe 断言,而是制作自己的断言,例如: if (1 != 2) console.log('Failed'); if (3 != 4) console.log('Failed');
  • 这其实不是一个坏主意!我试试看:)

标签: javascript automated-tests e2e-testing web-testing testcafe


【解决方案1】:

这可行,只需将所有元素放入数组中并遍历它们

for(let i = 0; i < 400; i++) {
    test
    (`Test `+i, async t => {
        await t.expect(i).eql(i+1);
    });
}

【讨论】:

    【解决方案2】:

    太棒了,这行得通。感谢Stiks的提示;)

    let x = 0;
    
    for (let i in result1){
        if (result1[i] != result2[i]){
            x += 1;
            console.log( x +') AssertionError: expected ' + result1[i] + ' to deeply equal ' + result2[i] );
        }
    }
    await t.expect(x).eql(0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      相关资源
      最近更新 更多