Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何使用karma测试e2e google chrome扩展?_Angularjs_Google Chrome Extension_Integration Testing_Karma Runner - Fatal编程技术网

Angularjs 如何使用karma测试e2e google chrome扩展?

Angularjs 如何使用karma测试e2e google chrome扩展?,angularjs,google-chrome-extension,integration-testing,karma-runner,Angularjs,Google Chrome Extension,Integration Testing,Karma Runner,我发现了很棒的单元/e2e测试工具。 我写了一个简单的chrome扩展。我想为它编写自动化测试,但不仅仅是单元测试,还有端到端测试。 我写了这样的东西(将打开我的角度延伸选项页面): 我删除了karma chrome launcher的“--user data dir”和“--disable default apps”(因为我希望我的扩展在“karma测试”期间留在chrome中) 但我收到了下一条错误消息“沙盒错误:应用程序文档不可访问。”: browser navigate to '

我发现了很棒的单元/e2e测试工具。 我写了一个简单的chrome扩展。我想为它编写自动化测试,但不仅仅是单元测试,还有端到端测试。 我写了这样的东西(将打开我的角度延伸选项页面):

我删除了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选项——没有早就不推荐使用的沙盒

我相信我没有错,选项页面打开正常,但从chrome“omnibox”

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


谢谢,

如果您尝试设置代理怎么办?像

proxies = {
    '/': 'chrome-extension://aopgehikihpnclbfeohobanjecpiefho/'
};
karma-e2e.conf.js文件中,然后

browser().navigateTo('/html/application.html#/options');

在测试中?

我认为karma scenario runner无法做到这一点。你可以试试,它使用WebDriver,karma scenario runner将被它取代。

链接到angular extension,似乎google chrome extension没有karma单元测试和端到端测试,因此,我必须为扩展清单的web可访问资源部分中列出的itIs application.html编写自己的单元测试?是的,我在“web可访问资源”中有html/application.html:[“js/*”、“html/*”、“css/*”、“images/*”],我得到了:WARN[proxy]:无法代理/html/application.html(错误:getaddrinfo eNot)浏览器导航到“/html/application.html#/options”:沙盒错误:应用程序文档不可访问。可能Karma代理不支持chrome扩展。在解决此问题之前,可能没有解决方案。您可以在Github上提交问题。我将问题发布到Karma runner组,您可能会得到更权威的答案(包括未来计划)如果您在上发布问题。我尝试了Digrator,并看到WebDriver打开了扩展选项页OK(我在浏览器中观察到),但
错误:在chrome页面上找不到角度-extension://ojkcpfmpkjjdmhmbgjdobncijnbgenbo/html/application.html#/options
。我不懂量角器和webdriver。我可以尝试以不同的方式访问元素吗?我尝试了
ptor.findElement(dragrator.By.bind('options_page'))
如果看不到代码,我不能说太多,但是您是否手动引导angular?您也可以尝试其他选择器进行测试,如By.css.Yes i due require.jsManual bootstrap很好,但请确保在根元素上添加ng应用程序,以便angular scenario runner可以找到它…我想我理解这个问题。我向您发送了一个pull request()。添加类后需要调用angular.bootstrap。另外,我在量角器中添加了一行,不知何故window.name没有设置为DEFER_LABEL,引导恢复也不起作用。
proxies = {
    '/': 'chrome-extension://aopgehikihpnclbfeohobanjecpiefho/'
};
browser().navigateTo('/html/application.html#/options');