首先是ngt为空的问题:主页上写了一些内容,在ngs下显示如下图,但是用ngtest启动时,会发现还是一片空白。而且没有错误。起初我以为是因为我在修改中犯了一些错误。查无果后,直接使用ngnewproject新建一个项目进行测试。由于我本地的angularcli没有更新,所以还是之前安装的angular11版本。创建项目后直接执行ngtest,发现没有问题。然后我把angularcli版本升级到angular13版本,然后进行ng测试,发现显示空白。由此可知,版本存在一些错误,并非人为修改造成的。问题。后来尝试修改karma的版本为之前项目中的版本,还是没有效果。理论上按照angular官方的方法,新的angular项目应该有对应版本安装的依赖,不用想着修改,所以我就试着搜索angular13对应的karma版本,最后根据这些关键词找到了答案。事实证明,angular13改进了TestBed。在Angular13中,每次测试后都会清理DOM,以便开发人员可以更快地进行测试。如果我们还想像以前一样看到单元测试中的内容,我们可以配置TestBed关闭这个功能。问题二:引入tethys/icon失败发生错误,根据给定的thyIconName查找图标不可用。首先想到的是查看官方demo,但是也报错,只能再次查看官方文档。根据官方文档,我们只需要在angular.json中引入assets配置,按照给定的导入图标即可。我们可以找到需要的包,然后查看它的readme,发现文件结构没有丢失,然后去了解资产配置。在angular官方文档中,assets是这样解释的:包含静态资源路由的对象在project-globalcontext中被应用。默认路径指向项目的图标文件及其资产文件夹。也就是我们新建angular项目时自带的配置。官方文档也解释了如何自己配置资源项:其中glob是一个node-glob,以输入中的路径作为基本目录,node-glob可以充当通配符。*:匹配路径部分中的0个或多个字符(.除外)**:匹配0个或多个子文件夹。也就是说,**/*.js可以匹配foo.js、a/foo.js、a/b/foo.js、a/b/c/foo.js输入作为相对于工作空间的路径。output是相对于outDir的路径(默认为dist)。{"glob":"**/*","input":"./node_modules/@tethys/icons","output":"/assets/icons/"}也就是说,根据上面的说法,有很多方法可以确保我们能够找到我们需要的资源。这些路径指向的所有文件也都存在,没有丢失或损坏。nodemodules:dist:也就是说理论上是没有问题的,但是实际上我们在使用的时候还是会报错——找不到资源,这个问题也没有解决。问题3使用时出现错误,但运行时没有出现错误。检查后,没有发现明显的错误,正常导入了RouterModule。查询上一个项目中的来源。根据之前项目中的源在本项目中查找后,发现一直没有变化。尚未重命名或修改。谷歌搜索后发现是webstorm的问题,需要更新到最新版本。之前的项目也遇到过类似的错误,比如webstorm显示错误但运行正常。由此我们也可以知道webstorm对于不同的angular版本也会有不同的表现。对于这个问题,webstorm也会有bug。如果运行正常,则无需关心webstorm给出的上述报错。