我正在使用Yeoman和generator-angular来管理AngularJS应用程序,但我在自动化测试方面遇到了麻烦.
运行grunt test将运行一次单元测试.通过改变karma配置块Gruntfile.js,我可以在单元测试后运行E2E测试,添加e2e:
karma: {
//...
e2e: {
configFile: 'karma-e2e.conf.js',
singleRun: true
}
},
Run Code Online (Sandbox Code Playgroud)
太棒了:现在当我键入grunt test所有测试时都会运行.但它们只运行一次,并且有很大的开销(启动指南针,运行服务器,启动Chrome进程等).相反,服务器和Chrome进程应该保持运行,当我保存测试时,应该重新运行测试.
我可以通过修改都达到这个karma.conf.js和karma-e2e.conf.js和设置singleRun = true,然后在运行karma start在一个终端窗格,karma start karma-e2e.conf.js在另一个.如果业力配置中的任何端口都没有发生冲突(默认情况下它们会这样做),这是有效的.现在我绕过了Grunt而只是做了我自己的事情(这似乎有点傻,因为Grunt应该让事情变得更容易).
无论如何,经过一些更改(修复?) - 为了简洁而没有详细说明 - 这有效但不会削减它:我现在必须运行两个不同的命令并密切关注两个不同的终端窗格.当然有更好的方法.
如何运行单个命令来观察我的测试文件并重新运行测试?
奖金问题:为什么地球上没有提供此功能?这只是发电机角度开发人员没有足够时间来实现这个问题的问题吗?我问,因为我只是刚刚进入Angular/Yeoman/Karma(你可能已经注意到了),并且觉得E2E和单元测试的自动化测试对于工作流程至关重要.