【问题标题】:Auto allowing WebRTC permissions in unit tests在单元测试中自动允许 WebRTC 权限
【发布时间】:2013-09-26 23:01:18
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript html unit-testing jasmine webrtc


    【解决方案1】:

    好问题。

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

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

    一些建议(可能对你不起作用,因为你正在编写一个库,而不是一个应用程序......)

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

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

    【讨论】:

    • 如果有人在使用 Karma 并且有兴趣实现它,this 应该可以工作
    【解决方案2】:

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

    【讨论】:

    • 有用的答案,但我希望有一些更集成的东西,不需要我在测试环境之外进行配置设置(为了可移植性)。你知道有什么工具可以自动化这个过程吗?
    • 我没有找到任何工具 - 只有这个。但它真的对我有用:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多