Visual Studio 2015、C#、Xamarin 6.1.3、iOS 10.2、iPhone 6s Plus、Xcode 8.2 でモバイル自動テストを作成しています。また、Mac エージェント (OS X El Capitan 10.11.6) で Windows 10 からリモートで自動テストを起動しようとしています。VS でリモート接続をセットアップしたので、xamarin Mac エージェントが接続されています: これは、コードでアプリケーションを起動しようとしている方法です:
IApp iApp = ConfigureApp
.iOS
.DeviceIp(mac_ip)
.DeviceIdentifier(iphone_device_identifier)
.AppBundle(/path_to_ipa/application.ipa)
.Debug()
.StartApp();
StartApp() メソッドでテストが失敗し、「iOS テストは Windows ではサポートされていません」というメッセージが表示されます。:
at Xamarin.UITest.iOS.iOSApp..ctor(IiOSAppConfiguration appConfiguration)
at Xamarin.UITest.Configuration.iOSAppConfigurator.StartApp(AppDataMode appDataMode)
at Xamarin.Application.Initialize() in D:\_framework mobile\framework\Framework\Xamarin\Application.cs:line 30
at Xamarin.Application..ctor() in D:\_framework mobile\framework\Framework\Xamarin\Application.cs:line 22
at Xamarin.Application.GetInstance() in D:\_framework mobile\framework\Framework\Xamarin\Application.cs:line 54
at Specflow.Hooks.BaseSteps.StartApplication() in D:\_framework mobile\framework\Framework\Specflow.Hooks\BaseSteps.cs:line 19
at lambda_method(Closure , IContextManager )
at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration)
at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.FireEvents(HookType bindingEvent)
at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnScenarioStart(ScenarioInfo scenarioInfo)
at TechTalk.SpecFlow.TestRunner.OnScenarioStart(ScenarioInfo scenarioInfo)
at Specflow.Features.DemoFeatureFeature.ScenarioSetup(ScenarioInfo scenarioInfo)
at Specflow.Features.DemoFeatureFeature.AddTwoNumbers() in D:\_framework mobile\framework\Framework\Specflow.Features\DemoFeature.feature:line 7
Result Message:
Test method Specflow.Features.DemoFeatureFeature.AddTwoNumbers threw exception:
System.Exception: iOS tests are not supported on Windows.
以前、同じデバイスと Mac で appium を使用して同じアプリケーションを起動しましたが、すべて問題ありませんでした。
ポートの取得方法がわからないので .DevicePort() は指定していませんが、デバイスが1台しか接続されていない場合は不要だと思います。
また、シミュレーターで起動しようとしましたが、同じエラーが発生しました。