gpt4 book ai didi

TypeScript 编译失败和 Karma 测试执行?

转载 作者:搜寻专家 更新时间:2023-10-30 20:43:44 26 4
gpt4 key购买 nike

我目前正在使用 Karma + Jasmine 在基于 TypeScript 的项目上运行测试,并且我想在 TypeScript 编译在 karma watch 模式下失败时“中断测试”。

我正在使用标准的 Karma 配置并使用 webpack 预处理器(编译 TS 文件)编译 TS。一切正常,除了在发生编译错误时看到所有测试都通过是非常误导的(即使 webpack 编译失败,karma 也会重新运行以前的测试)。

这看起来相当微不足道,但在查看文档和搜索 Google 一两个小时后,我拼命寻找解决方案,但我没有找到。

有没有涉及karma、jasmine、webpack和TypeScript的解决方案,可以在出现编译错误时中断测试而不中断监视模式?

编辑:添加了 watch 模式的精度。

最佳答案

就我个人而言,我不会在单个工作流程中将 karma 与 webpack 一起使用。但是请记住,通过对包括 typescript 在内的它们一起使用进行一些研究,并且存在问题https://github.com/webpack/karma-webpack/issues/49https://github.com/webpack/webpack/issues/708你可能会面对。因此,如前所述,bail 选项未按预期工作,您可以尝试使用提到的插件,该插件将因 TS 错误而失败(引用来自 this comment to issue #708 的建议)。

更新: 至于 watch 案例,我会考虑进行更改以防止 webpack 失败,但同时引发错误并防止 karma 执行测试(基于此 suggestion )。

module.exports = function (config) {

config.set({

browsers: [ 'Chrome' ],
frameworks: [ 'mocha' ],
reporters: [ 'mocha' ],

files: [
// ...
],

// ...
webpack: {
plugins: [
function()
{
this.plugin("done", function(stats)
{
// Log each of the errors
stats.compilation.errors.forEach(function (error) {
console.log(error.message || error);
});

// Pretend no assets were generated. This prevents the tests
// from running making it clear that there were errors.
stats.stats = [{
toJson: function () {
return this;
},
assets: []
}];
});
}
]
}
})

}

我刚刚检查了将上述插件添加到相当简单的项目 https://github.com/itajaja/tslib-webpack-starter并且测试因任何 TS 编译错误而失败。

关于TypeScript 编译失败和 Karma 测试执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840541/

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