我最近接管了使用AngularJS为其前端编写的应用程序的开发,并且我希望在开发生命周期中引入一些自动化测试 .
在对AngularJS可用的各种测试框架进行了一些研究后,我决定使用Jasmine,因为它似乎最适合我们想要运行的测试,以及我们希望框架的功能 . 提供 .
我一直在按照https://scotch.io/tutorials/testing-angularjs-with-jasmine-and-karma-part-1的指南在我的开发环境中安装和设置Karma和Jasmine,但是在遇到这些类型的设置指南之前遇到了一个我从未遇到过的问题:
我已经到了 Headers 为 Karma Setup
的部分,并运行了命令:
npm install karma karma-jasmine jasmine-core karma-chrome-launcher --save-dev
这在命令行中给了我以下输出:
npm WARN弃用了angular-ui-router@1.0.3:这个npm包'angular-ui-router'已经被重命名为'@ uirouter / angularjs' . 请更新您的package.json . 请参阅https://ui-router.github.io/blog/uirouter-scoped-packages/ angular-ui-router@1.0.3安装H:\ included \ Documents \ repositories \ jasmine \ node_modules \ angular-ui-router node migrate / migratewarn.js警告!这个npm包“angular-ui-router”已经被重命名为“@ uirouter / angularjs” . 请更新您的package.json有关详细信息,请参阅https://ui-router.github.io/blog/uirouter-scoped-packages/ . jasmine@1.0.0 H:\ included \ Documents \ repositories \ jasmine - angular@1.6.6 - angular-mocks@1.6.6`-angular-ui-router@1.0.3 npm WARN可选跳伞选项依赖: fsevents@^1.0.0(node_modules \ chokidar \ node_modules \ fsevents):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:不支持fsevents@1.1.2的平台:want {“os”:“darwin”,“arch”:“any”} (当前:{“os”:“win32”,“arch”:“x64”})npm WARN jasmine@1.0.0无描述npm WARN jasmine@1.0.0没有存储库字段 .
正如错误消息明确指出的那样,这是因为包 angular-ui-router
已重命名为 @uirouter/angularjs
.
为了解决这个问题,我在vi中打开了package.json文件,并更改了一行:
"angular-ui-router": "^1.0.3",
至:
"@uirouter/angularjs": "^1.0.3",
正如错误消息所述,(我在vi中转义了插件,并使用命令 :wq
来写入文件并退出)并运行命令:
npm install karma karma-jasmine jasmine-core karma-chrome-launcher --save-dev
再次 .
但是,这给了我与之前相同的错误信息...当我再次在vi中打开package.json文件时,我看到我改变的行已经回到原来的状态了......所以似乎运行 npm install ...
命令是在安装Karma和Jasmine之前更改package.json文件,所以它然后在错误的位置查找它们或者什么......
任何人都可以向我解释这里出了什么问题吗?如何让npm成功安装Karma&Jasmine?
Edit
当我按照指南中的后续步骤操作时,我运行:
npm install -g karma-cl
和
npm install angular angular-ui-router angular-mocks --save-dev
然后试试
karma init
但这会给出一条信息:
TypeError:无法读取未定义的属性“slice”,并列出发生错误的多个位置
我谷歌这个,过了一段时间,发现这似乎是一个相对常见的问题,当使用Unix命令行安装Karma / Jasmine(我一直在使用MINGW32) .
我用Windows CMD试了一下,但这给了我以下输出:
npm ERR! Windows_NT 10.0.15063 npm ERR! argv“C:\ Program Files \ nodejs \ node.exe”“C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js”“install”“angular”“angular-ui-reouter”“angular -mocks“”--save-dev“npm ERR!节点v6.11.3 npm ERR! npm v3.10.10 npm ERR!代码E404 npm ERR! 404注册表在https://registry.npmjs.org/angular-ui-reouter npm ERR上为GET返回404! 404 npm ERR! 404'angle-ui-reouter'不在npm注册表中 . 错误的ERR! 404你应该让作者发布它(或者自己使用这个名字!)npm ERR! 404 npm ERR! 404请注意,您也可以从npm ERR安装! 404 tarball,文件夹,http url或git url . 错误的ERR!请在任何支持请求中包含以下文件:npm ERR! H:\包含\文件\库\茉莉花\ NPM-的debug.log
谁知道为什么会这样?如何成功安装这些软件包?
1 回答
啊,刚发现我在命令中输了一个错字:
本来应该:
所以,正如我在其他各个地方发现的那样,它似乎不会在Unix命令行中运行,但会在Windows命令行中运行...