2013-09-26 33 views
6

我正在为使用WebRTC的库编写单元测试。在单元测试中自动允许WebRTC权限

我的测试套件几乎需要每个单元测试都需要Chrome的权限,这要求我手动点击每个测试的“允许”按钮。

是否有一个标志或设置我可以更改为始终允许全球媒体访问,以便我的测试套件不提示权限?

我在Chrome中使用Jasmine test runner。

回答

6

好问题。

编辑:使用Chrome的 - 使用 - 伪 - 用户界面媒体流标志,所有gum调用将被自动接受,并且不会弹出用户界面。

我相信有一些浏览器标志的讨论意味着许可确认从来不需要通过用户界面,但据我所知,这还没有在任何浏览器中实现。 (我可以想像潜在的安全问题。)

夫妇的建议(假设你正在写一个库,而不是一个应用程序,它可能不会为你工作,...)

  1. 莫非您是否从Chrome应用运行测试?如果您使用audioCapture/videoCapture权限,则仅在应用程序安装时请求权限,而不是在每个会话中请求权限。

  2. 对调用getUserMedia()的页面使用HTTPS。这意味着只有在第一次调用gUM时才会为该域请求权限。

+0

如果任何人使用Karma并有兴趣实现这个,[this](http://stackoverflow.com/a/19139844/5272567)应该工作 – Matthias

1

还有一些政策列表Chromium respects您对以下两个选项感兴趣:VideoCaptureAllowedVideoCaptureAllowedUrls。此外,此选项对我DefaultMediaStreamSetting很有用,但现在已弃用(我将其设置为1)。如何设置 - 它仅取决于您的操作系统。看看for Linux,Mac OS XWindows

+0

有用的答案,但我希望有更多的集成,不需要我在我的测试环境以外(为便携性)采取我的配置设置。你知道任何可以自动化这个过程的工具吗? – Rick

+0

我没有找到任何工具 - 只有这个。但它真的适用于我:) –