对于单元测试,我们使用grunt/karma-runner/jasmine/phantom.js.因为我们试图涵盖任何新功能,所以许多单元测试会迅速增长.而且,不幸的是,测试时间也在增加.现在它并不重要,1000次测试需要10秒,但它会变得越来越糟.
问题:
我知道,有些测试写的很糟糕(耗费大量时间),但我应该优化哪一个?是否存在一些karma/jasmine剖析器来测量每次测试的时间执行?
我可以启动更多的karma-runner线程/进程,因为CPU仅使用5%-10%?单元测试真的是独立的.
每当我保存文件时,karma:watch启动所有测试,可能存在karma-runner的一些选项,它只重新启动当前文件夹的测试(我们使用规则:单元测试file.spec.js存储在同一个文件夹中作为源文件.js)?
谢谢,
update1:有人建议我使用iit/ddescribe作为jasmine(与mocha的.only相同),它是开发/调试的绝佳选择,但可能存在其他方式吗?
我在这里将问题发布到karma-user论坛.
我尝试使用firebase db,我发现了非常重要的限制,这些限制在firebase帮助或FAQ中没有描述.
第一个问题是符号:点'.' 禁止钥匙,
即firebase 拒绝(原因不明)下一个:
nameRef.child('Henry.Morgan@caribbean.sea').set('Pirat');
Run Code Online (Sandbox Code Playgroud)
当您尝试添加这样的键时,在键'/'中使用正斜杠的第二个问题
{'02/10/2013': true}
Run Code Online (Sandbox Code Playgroud)
在firebase中你可以看到:
'02': {
'10': {
'2013': true
}
}
Run Code Online (Sandbox Code Playgroud)
你有任何想法如何解决它(自动)?可以设置一些标志,它是所有符号的字符串键吗?当然,我可以在写入之前和读取之后每次解析/恢复数据,但是......
顺便说说 '.' '/' - firebase的所有限制符号?
我发现了奇妙的单位/ e2e测试工具业力.我用角度编写了简单的镀铬扩展.我想为它编写自动化测试,但不仅仅是单元测试,端到端测试.我写了这样的东西(将打开我的角度扩展选项页面):
it('Go to options page', function() {
browser().navigateTo('chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options');
});
Run Code Online (Sandbox Code Playgroud)
我为karma-chrome-launcher删除了'--user-data-dir'和'--disable-default-apps'(因为我希望我的扩展程序在"karma tests"期间保留在chrome中)
但我有下一条错误消息"沙箱错误:应用程序文档无法访问".:
browser navigate to 'chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options'
http://localhost:9876/base/tests/e2e/scenario.js?1372429335000:9:5:
Sandbox Error: Application document not accessible.
Chrome 27.0 (Windows): Executed 2 of 2 (2 FAILED) (0.254 secs / 0.139 secs)
Run Code Online (Sandbox Code Playgroud)
Chrome选项--no-sandbox很久以前就弃用了.
我确定我没错,选项页面打开确定,但是来自chrome"omnibox".
chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options
Run Code Online (Sandbox Code Playgroud)
沙箱错误意味着没有办法通过业力进行谷歌浏览器扩展的端到端测试?我可以将chrome设置为特殊的"非安全"模式,仅用于测试吗?
谢谢,
integration-testing google-chrome-extension angularjs karma-runner