Windows商店应用程序在首次访问某些设备(如网络摄像头,麦克风等)时需要特殊的用户输入。在Visual Studio集成测试运行器或resharper的应用程序中,没有出现此类权限请求窗口。所以使用网络摄像头的测试最终会在调用InitializeAsync()时永远挂起:
[TestClass]
public class WhenRecordVideo
{
[UITestMethod]
public void test1()
{
var captureSettings = new MediaCaptureInitializationSettings
{
AudioDeviceId = "",
VideoDeviceId = deviceId.Id,
StreamingCaptureMode = StreamingCaptureMode.Video,
PhotoCaptureSource = PhotoCaptureSource.Auto
};
var capture = new MediaCapture();
capture.InitializeAsync(captureSettings).AsTask.Wait()
}
由于测试只在开发机器上运行,有没有办法使用registry / config hacks禁用该权限请求窗口?
答案 0 :(得分:0)
您不应该在测试中测试MediaCapture
。微软会自己解决这个问题。如果您想要单独测试您编写的代码 - 将照片捕获代码抽象为服务,并在测试中使用该服务的模拟实现,以便您可以提供确定性图像来测试您自己的代码。