我使用的是mocha与chai.assert我的测试.捕获并报告错误,但它们不会显示文件/行号.我习惯用其他语言的测试来获取位置信息,否则很难弄清楚哪个断言失败了.
有没有办法用mocha/chai/assert获取位置信息?
Lou*_*uis 17
从版本1.9.1开始,如果将includeStack标志设置为true,则会在断言失败时获得堆栈跟踪:
var chai = require("chai");
chai.config.includeStack = true;
var assert = chai.assert;
describe("test", function () {
it("blah", function () {
assert.isTrue(false);
});
});
Run Code Online (Sandbox Code Playgroud)
在1.9.1之前的版本中,您必须设置chai.Assertion.includeStack = true.从1.9.1开始,不推荐使用这种获取堆栈跟踪的方法.它仍然可以在1.10.0中使用,但可以在1.11.0或2.0.0中删除.(详情请见此处.)
上面的示例将显示assert.isTrue失败的堆栈跟踪.像这样:
AssertionError: expected false to be true
at Assertion.<anonymous> (.../node_modules/chai/lib/chai/core/assertions.js:193:10)
at Assertion.Object.defineProperty.get (.../node_modules/chai/lib/chai/utils/addProperty.js:35:29)
at Function.assert.isTrue (.../node_modules/chai/lib/chai/interface/assert.js:242:31)
at Context.<anonymous> (.../test.js:7:16)
[... etc ...]
Run Code Online (Sandbox Code Playgroud)
(我已经将跟踪截断为仅相关的并截断路径.)上面我所包含的最后一帧是发生错误的那一帧(.../test.js:7:16).我认为chai不允许只拥有断言调用的文件名和行号.
chai.Assertion.includeStack现已弃用.请chai.config改用
var chai = require("chai");
chai.config.includeStack = true;
var assert = chai.assert;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4049 次 |
| 最近记录: |