angularjs - 如何使用 karma 测试e2e谷歌浏览器扩展程序?

标签 angularjs google-chrome-extension integration-testing karma-runner

我发现了很棒的unit/e2e测试工具karma
我用angular编写了简单的chrome扩展名。我想为此编写自动化测试,而不仅是单元测试,还包括端到端测试。
我写了这样的东西(将打开我的 Angular 扩展选项页面):

 it('Go to options page', function() {
   browser().navigateTo('chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options');
 });

我删除了karma-chrome-launcher的'--user-data-dir'和'--disable-default-apps',(因为我希望我的扩展名在“karma测试”期间保留在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)

Chrome选项-很久以前不推荐使用no-sandbox

我确定我没有记错,选项页面可以正常打开,但来自Chrome“多功能框”。
chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options

沙盒错误意味着无法通过 karma 对Google chrome扩展进行端到端测试吗?
我可以将chrome设置为仅用于测试的特殊“非安全”模式吗?

谢谢,

最佳答案

我不认为 karma 场景运行者能够做到这一点。您可以尝试Protractor,它使用WebDriver, karma 运行者将被替换。

关于angularjs - 如何使用 karma 测试e2e谷歌浏览器扩展程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17369462/

相关文章:

javascript - 表中的 Angular ng-repeat 用数组迭代键

google-chrome-extension - 在chrome浏览器中自动重新加载proxy.pac文件

java - 等待 RabbitMQ docker 容器使用 docker-maven-plugin 启动

angularjs - 当 xunit 文件不存在时,Protractor/Jasmine 不会为该文件创建文件夹

.net - 在 IIS 和 <default document> 上使用 HTML5mode(true) 的 AngularJS

angularjs 1.6.0(现在最新)路线不起作用

javascript - Chrome 扩展弹出窗口多次注入(inject) javascript

javascript - 如何使用JavaScript触发 ‘isTrusted=true’点击事件?

testing - 如何决定何时和何时不创建集成测试

javascript - 将参数传递给回调函数而不更改方法(Siesta 测试命名空间)