M'λ*_*'λ' 5 jasmine typescript karma-runner webpack
我目前正在使用Karma + Jasmine在基于TypeScript的项目上运行测试,并且当TypeScript编译在因果观察模式下失败时,我想“破坏测试”。
我正在使用标准Karma配置,并使用webpack预处理器(用于编译TS文件)来编译TS。一切工作都很好,除了在发生编译错误时看到所有测试都通过是极具误导性的(即使webpack编译失败,业力也会重新运行以前的测试)。
看起来似乎很琐碎,但是在查看文档并搜索Google一两个小时之后,我拼命地寻找一种解决方案,但我没有找到。
是否存在涉及业力,茉莉花,webpack和TypeScript的解决方案,这些解决方案可以在发生编译错误时中断测试而不会破坏监视模式?
编辑:添加了对手表模式的精度。
就我个人而言,我不会在单个工作流程中将 karma 与 webpack 一起使用。但请记住,通过对它们一起使用进行一些研究,包括打字稿,并且存在问题https://github.com/webpack/karma-webpack/issues/49和https://github.com/webpack/webpack/issues/708 wihich你可能面临着。因此,正如提到的bail选项无法按预期工作,您可以尝试使用提到的插件,该插件会因 TS 错误而失败(引用问题 #708 的评论中的建议)。
更新:对于这种watch情况,我会考虑进行更改,以防止 webpack 失败,但同时引发错误并防止 karma 执行测试(基于此建议)。
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: []
}];
});
}
]
}
})
}
Run Code Online (Sandbox Code Playgroud)
我刚刚检查过将上述插件添加到相当简单的项目https://github.com/itajaja/tslib-webpack-starter中,并且测试因任何 TS 编译错误而失败。
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |