在单元测试中自动允许WebRTC权限

Auto allowing WebRTC permissions in unit tests

本文关键字:WebRTC 权限 单元测试      更新时间:2023-09-26

我正在为使用WebRTC的库编写单元测试。

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

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

我正在使用Chrome中的Jasmine测试运行器。

好问题。

编辑:使用Chrome的--use-fake-ui-for-media-stream标志,所有gUM调用将被自动接受,并且不会弹出任何UI。

我相信有一些关于浏览器标志的讨论,这意味着永远不需要通过 UI 进行权限确认,但据我所知,这还没有在任何浏览器中实现。(我可以想象潜在的安全问题。

几个建议(鉴于您正在编写库而不是应用程序,这可能对您不起作用......

  1. 您可以从Chrome应用程序运行测试吗?如果使用 audioCapture/videoCapture 权限,则仅在应用安装时请求一次权限,而不是针对每个会话请求权限。

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

Chromium 列出了您对这两个选项的兴趣的政策:VideoCaptureAllowed 和 VideoCaptureAllowedUrls。此外,此选项对我很有用 DefaultMediaStreamSetting,但它现在已经弃用(我将其设置为 1)。如何设置 - 这仅取决于您的操作系统。看看Linux,Mac OS X和Windows