javascript - 如何在 AVA 中禁用堆栈跟踪并在错误时显示我自己的错误消息
问题描述
我使用 ava 在 JavaScript 中测试我的 Scheme 解释器,我不想在每个失败的断言上都有堆栈跟踪,我可能希望有自定义报告器来显示哪个测试失败以及为什么而不显示通常指向的错误评估器中的同一行。
我可以轻松编写将显示失败测试的函数(我可以编写一个宏来显示测试的表达式),但我无法摆脱不相关的 JavaScript 代码的相当大的堆栈跟踪。只有当我的 JavaScript 代码抛出异常时,我才希望有堆栈跟踪。
我不确定,但我认为 t.is 在失败时抛出异常。我想告诉我的测试它们失败了,但不要抛出任何异常,除非我可以有一个钩子来显示 Scheme 堆栈跟踪而不是 JavaScript 的。
在这里,我有消息显示(string<? "123" "123")
应该根据规范返回 #t 的断言失败。突出显示的代码只是函数调用。几乎所有东西都是函数(比如(string? "foo")
)
我使用 Ava,所以我不需要编写自己的框架,这需要几周的时间来编写。Ava 也有代码覆盖率,我的项目是 JavaScript,即使我的测试是在 Scheme 中。
解决方案
您已经强调了应该是测试失败的根源,而不是过长的堆栈跟踪。如果你有一个小的复制品,如果你能打开一个 GitHub 问题会很好。虽然我们不希望设置禁用失败的显示,但我们也不应该显示废话。
推荐阅读
- elasticsearch - 在 ES 7.5.x 中将二进制字段数据读取到 byte[] 字段时出现转换异常
- google-api - Places API 返回 NOT_FOUND
- html - 在 Bootstrap 导航栏中对齐元素
- java - 如何使用来自其他类控制器的 FXML 类的节点?
- file-type - 乐高头脑风暴文件类型转换
- javascript - 在 Oracle Application Express (APEX) 中调用 apex_server_process 后使用 Javascript 清除页面会话状态
- android - 是否可以在没有电缆的情况下启动 adb logcat?
- mysql - MySQL 对 NULL 值的 LIKE 查询问题
- ubuntu - Yocto Project: Ubuntu 16.04 LTS keeps crashing when running: bitbake fsl-image-gui
- python - 在 Python 中测量串行 Tx 和 Rx 之间的时间间隔