Wrap tests in domain instead of try/catch
- Ngôn ngữ chính
- JavaScript
- Star
- 1.9k
- Fork
- 359
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
In several cases, async errors with nodeunit and streams2 only result in the test giving a "test not run or test.done not called". without any sign of the error. What I ended up doing is something like this
``` javascript
Function.prototype.withDomain = function(withStack) {
var fn = this;
return function(test) {
var d = domain.create();
d.on('error', function(e) {
test.fail('test failed with ' + e.message);
if(withStack) {
console.error(e.stack)
}
test.done();
});
d.run(fn.bind(this, test));
}
}
exports['my test'] = function (test) {
setTimeout(function() {
throw new Error('Throwing an error asynchronously');
test.done()
});
}.withDomain()
```
I just thought this was useful enough to be the default.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
The issue provides a Function.prototype.withDomain example and identifies nodeunit tests with streams2 as the affected area. Start by reading nodeunit's asynchronous test execution and error-handling path, then run the existing test suite with an asynchronous stream error. Done means those errors fail the relevant test with a useful message instead of reporting only that test.done was not called.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, node.js
- Lĩnh vực
- testing
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 28/100