gpt4 book ai didi

javascript - 将测试 ID 添加到单元测试以进行报告

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:18 25 4
gpt4 key购买 nike

我正在使用 mocha 并尝试构建一个单独报告测试的测试系统。目标是在项目需求和单元测试中定义的测试之间具有可追溯性。因此,例如,测试“必须能够创建新的小部件”位于 id 为“43”的需求数据库中,我希望测试该标准的单元测试报告类似 Test 43,必须能够要创建新的小部件,请传递,然后更新相应的数据库条目(另一个服务可能负责此操作)。

这可以在 Mocha 中完成吗?到目前为止,我唯一发现的就是用测试 ID 替换 it() 函数中的文本,然后使用 json 报告器处理结果(但随后我没有得到正在测试的文本,除非我将它们组合起来并进行某种解析)。注意:并非所有测试都有 id。

这是我希望获得的功能类型的示例

describe("Widget" function() {
it("should allow creation of widgets", function() {
this.id = 43;
result = widget.create();
expect.result.to.exist;
});
});

然后是一个钩子(Hook),例如

afterEach(function(test) {
if (test.hasOwnProperty('id')) {
report(test.result);
}
});

或者自定义报告器,或者某种适配器。

runner.on('test end', function(test) {
console.log(test.id); //doesn't exist, but i want it to
report(test);
});

最佳答案

这取决于您的断言库。与Chai ,您有文本可选字段。

assert.should.exist(result, 'expect Result to exist (Id 43)');

Jasmine ,您可以将测试引用添加到您的 it() 中:

describe("Widget" function() {
it("should allow creation of widgets (Id 43)", function() {

使用 Mocha custom reporters您可以尝试在测试套件中定义一个。

module.exports = MyReporter;

function MyReporter(runner) {
var passes = 0;
var failures = 0;

runner.on('pass', function(test){
passes++;
console.log('pass: %s', test.fullTitle());
});

runner.on('fail', function(test, err){
failures++;
console.log('fail: %s -- error: %s', test.fullTitle(), err.message);
});

runner.on('end', function(){
console.log('end: %d/%d', passes, passes + failures);
process.exit(failures);
});
}

这里确实有两个建议。第一种是最简单的,只需将您的 id 添加到 it() 的描述中,然后就会显示哪些内容通过了,哪些内容失败了。这将是实现您目标的最快方法。

但是,如果您想要使用更奇特的方法,并且可以进行测试以确保设置完毕,那么您可以使用自定义报告器,如果未设置 ID,这将使您的测试失败。

关于javascript - 将测试 ID 添加到单元测试以进行报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com