茉莉花测试随机失败

时间:2019-11-18 10:14:47

标签: javascript angular typescript jasmine karma-jasmine

在用竹子制作茉莉花测试时,我面临一个奇怪的问题。测试随机失败并显示以下错误

  

失败:无法将未定义转换为对象版本18-Nov-2019   03:08:56 ./node_modules/@angular/core/fesm5/core.js/http://localhost:9876/_karma_webpack_/vendor.js:56242:13   建立18-Nov-2019   03:08:56 ./node_modules/@angular/core/fesm5/core.js/http://localhost:9876/_karma_webpack_/vendor.js:56265:31   建立18-Nov-2019   03:08:56 ./node_modules/@angular/core/fesm5/core.js/http://localhost:9876/_karma_webpack_/vendor.js:56260:40   建立18-Nov-2019   03:08:56 ./node_modules/@angular/platform-b​​rowser-dynamic/fesm5/platform-b​​rowser-dynamic.js/JitReflector.prototype.propMetadata@http://localhost:9876/_karma_webpack_/vendor.js:117510:16   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/DirectiveResolver.prototype.resolve@http://localhost:9876/_karma_webpack_/vendor.js:32740:40   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/testing.js/MockDirectiveResolver.prototype.resolve@http://localhost:9876/_karma_webpack_/vendor.js:54975:46   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/CompileMetadataResolver.prototype.getNonNormalizedDirectiveMetadata@http://localhost:9876/_karma_webpack_/vendor.js:40491:23   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/CompileMetadataResolver.prototype.loadDirectiveMetadata@http://localhost:9876/_karma_webpack_/vendor.js:40422:18   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/JitCompiler.prototype._loadModules/http://localhost:9876/_karma_webpack_/vendor.js:53988:31   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/JitCompiler.prototype._loadModules/<@http://localhost:9876/_karma_webpack_/vendor.js:53987:13   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/JitCompiler.prototype._loadModules@http://localhost:9876/_karma_webpack_/vendor.js:53984:9   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/JitCompiler.prototype._compileModuleAndAllComponents@http://localhost:9876/_karma_webpack_/vendor.js:53969:31   建立18-Nov-2019   03:08:56 ./node_modules/@angular/compiler/fesm5/compiler.js/JitCompiler.prototype.compileModuleAndAllComponentsAsync@http://localhost:9876/_karma_webpack_/vendor.js:53928:32   建立18-Nov-2019   03:08:56 ./node_modules/@angular/platform-b​​rowser-dynamic/fesm5/platform-b​​rowser-dynamic.js/CompilerImpl.prototype.compileModuleAndAllComponentsAsync @ {http://localhost:9876/_karma_webpack_

经过几次重新测试后,测试开始通过。我无法确定根本原因。 Evey运行未通过其他测试。

1 个答案:

答案 0 :(得分:1)

您的Jasmine测试之间似乎存在依赖关系。

我建议使用“重点关注”来检查您的测试用例,并找出在其他测试未在他之前运行时失败的人。特别是,这意味着您要遍历测试用例,将“ it”更改为“ fit”,然后检查是否只有一次测试才能通过。如果通过,则将“ fit”改回“ it”,然后继续进行下一个。如果发现故障,则可以找出其依赖性,并加以解决。

“ describe”和“ fdescribe”都有替代形式。使用“ fdescribe”,仅运行描述中的测试。这样,您就可以找到“ describe” -s之间的依赖关系。

此处有关“适合”和“ fdescribe”的更多信息:https://jasmine.github.io/api/3.0/global