在用竹子制作茉莉花测试时,我面临一个奇怪的问题。测试随机失败并显示以下错误
失败:无法将未定义转换为对象版本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-browser-dynamic/fesm5/platform-browser-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-browser-dynamic/fesm5/platform-browser-dynamic.js/CompilerImpl.prototype.compileModuleAndAllComponentsAsync @ {http://localhost:9876/_karma_webpack_
经过几次重新测试后,测试开始通过。我无法确定根本原因。 Evey运行未通过其他测试。
答案 0 :(得分:1)
您的Jasmine测试之间似乎存在依赖关系。
我建议使用“重点关注”来检查您的测试用例,并找出在其他测试未在他之前运行时失败的人。特别是,这意味着您要遍历测试用例,将“ it”更改为“ fit”,然后检查是否只有一次测试才能通过。如果通过,则将“ fit”改回“ it”,然后继续进行下一个。如果发现故障,则可以找出其依赖性,并加以解决。
“ describe”和“ fdescribe”都有替代形式。使用“ fdescribe”,仅运行描述中的测试。这样,您就可以找到“ describe” -s之间的依赖关系。
此处有关“适合”和“ fdescribe”的更多信息:https://jasmine.github.io/api/3.0/global