【问题标题】:How to make my tests pending in Jest?如何让我的测试在 Jest 中待定?
【发布时间】:2015-11-17 23:16:51
【问题描述】:

我想让我的一些jest 测试待定。我该怎么做? API reference 没有任何方法可以让我的测试挂起。

【问题讨论】:

    标签: javascript testing jestjs


    【解决方案1】:

    【讨论】:

    • xitxdescribe 只是让测试通过。我可以将它们显示为待处理吗?
    • @asiniy 我相信不是pending 仅在 jasmine 2.0 之后可用,而 jest 使用 1.3
    【解决方案2】:

    不要说test(...),只需说xtest(...),测试将被跳过。

    【讨论】:

    • 有没有办法添加将显示在报告中的原因?就像在 Jasmine 中一样:xit().pend('Reason')
    • 这不会使测试挂起,但它只会让它通过。
    • 实际上,它不会使测试通过,它会完全跳过测试。它不会挂起,不会失败,甚至不会通过。
    • 我认为那是 mocha 特有的...?
    【解决方案3】:

    看起来在最新版本的 jest 中,xitxdescribe 将显示为默认报告者已跳过。

    如果您确实需要显示待定规范,则需要创建自定义报告器。

    这是用于设置自定义处理程序的开玩笑文档的link

    【讨论】:

    • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
    【解决方案4】:

    更新

    因为 jest@24.0.0 现在可以使用:

    it.todo(...)
    test.todo(...)
    

    看起来像:

    Tests:       1 todo, 23 passed, 24 total
    

    老答案

    将测试设置为 Pending 本身并没有在 Jest 中提供。

    但是它允许使用跳过测试

    it.skip(...)
    test.skip(...)
    

    然后它们被标记为未通过,而是跳过

    Tests:       1 skipped, 23 passed, 24 total
    

    对我来说,这相当于“待定”。

    来源Skip one test in test file JestGleichmut

    【讨论】:

    【解决方案5】:

    你也可以直接说test.todo('Some test I still need to do')

    然后测试运行器将显示处于todo 状态的测试计数:

    Tests: 1 todo, 2 passed, 3 total

    【讨论】:

    • 请注意,这仅适用于 Jest 24+
    • 现在有了 jest v24,这应该是公认的答案。将测试标记为已跳过与声明它处于待处理状态并不完全相同。
    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 2018-08-21
    • 2013-04-03
    • 2020-02-20
    • 2017-01-04
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多