Javascript 为什么伊斯坦布尔会在承诺链中显示所有内容的覆盖率,而不管是否有测试?
我的代码有:Javascript 为什么伊斯坦布尔会在承诺链中显示所有内容的覆盖率,而不管是否有测试?,javascript,promise,code-coverage,bluebird,istanbul,Javascript,Promise,Code Coverage,Bluebird,Istanbul,我的代码有: .then((data) => { let providerId = data[1].name; console.log(providerId); return global.db.Transcription.create({ ConferenceId: foundConference.id }) .then(() => { return { providerId }; }); }) .t
.then((data) => {
let providerId = data[1].name;
console.log(providerId);
return global.db.Transcription.create({
ConferenceId: foundConference.id
})
.then(() => {
return {
providerId
};
});
})
.then((dbTranscription) => {
return factory.checkTranscription({
Body: JSON.stringify({
providerId: dbTranscription.providerId
})
});
})
伊斯坦布尔展览:
但是,我没有对调用的checktranslation进行具体测试,等等。我不想显示它。是否有这样做的方法?伊斯坦布尔将在满足您为include属性提供的glob的任何文件中为代码提供覆盖范围。您还可以指定一个排除glob,用于排除特定文件,如测试文件本身。让伊斯坦布尔忽略特定函数实现的唯一方法是将该函数(在本例中为DbTransiption=>{return factory.checkTranscription…;})移动到它自己的模块,并将该文件从测试覆盖范围中排除 在被测试的代码库的某个地方,它正在调用承诺链并最终调用该函数。你可以看到,因为第71行的1x
问题是,为什么要将其从覆盖范围中排除?我没有创建明确的测试条件来查看是否调用了checkTranscription。对于这种情况,很好——我可以简单地编写测试。但我更希望覆盖范围显示为未覆盖,这样它就可以作为我需要编写的其他测试的待办事项列表。imho有更好的方法。在大多数测试运行程序中,您可以省略测试用例中的函数,即“某个测试”或“某个其他测试”,并在测试运行期间将其标记为跳过或TODO