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