У меня возникло несколько проблем с запуском моих Xamarin UItests на стороне iOS общего приложения. Тестирование не вызывает проблем на Android, но я получаю System.Exception
, когда я пытаюсь запустить их на iOS.Проблема с перекрестной платформой UITests на Xamarin.iOS
SetUp: System.Exception: этот комплект приложений недействителен для работы на симуляторе. Чтобы устранить эту проблему, пожалуйста, убедитесь, что целевое устройство является simulator.To запустить против установленного приложения на физическом устройстве вы можете useInstalledApp («ie.eoin.myapp»)
Я пытаюсь запустить тесты на симулятор, а также на реальном устройстве с тем же исключением. Ниже приведена трассировка стека.
Xamarin.UITest.iOS.iOSAppLauncher.LaunchAppLocal(Xamarin.UITest.Configurati`enter code here`on.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, System.Boolean clearAppData) [0x0008a] in <b034e37336b84a95a2482a0c5f0be621>:0
at Xamarin.UITest.iOS.iOSAppLauncher.LaunchApp (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, Xamarin.UITest.TestCloud.TestCloudiOSAppConfiguration testCloudAppConfiguration, Xamarin.UITest.Shared.Http.HttpClient testCloudWsClient, Xamarin.UITest.Shared.Http.HttpClient xtcServicesClient, System.Boolean testCloudUseDeviceAgent) [0x0007a] in <b034e37336b84a95a2482a0c5f0be621>:0
at Xamarin.UITest.iOS.iOSApp..ctor (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration) [0x00302] in <b034e37336b84a95a2482a0c5f0be621>:0
at Xamarin.UITest.Configuration.iOSAppConfigurator.StartApp (Xamarin.UITest.Configuration.AppDataMode appDataMode) [0x00017] in <b034e37336b84a95a2482a0c5f0be621>:0
at Shared.UITest.AppInitializer.StartApp() [0x00036] in /Users/eoinahern/Documents/xamarin_projs/HomeApp.Mobile/Shared/Shared.UITests/AppInitializer.cs:23
at Shared.UITest.Common.SetUp() [0x00002] in /Users/eoinahern/Documents/xamarin_projs/HomeApp.Mobile/Shared/Shared.UITests/Common.cs:17
at Shared.UITests.MapScreensTests.SetUp() [0x00002] in /Users/eoinahern/Documents/xamarin_projs/HomeApp.Mobile/Shared/Shared.UITests/MapScreens/MapScreensTests.cs:16
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /private/tmp/source-mono-4.6.0/bockbuild-mono-4.6.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/System.Reflection/MonoMethod.cs:305
В моем startApp()
методе в AppInitializer
классе, путь указывает на правильный .app
файл в каталоге бен.
public static IApp StartApp()
{
switch (TestEnvironment.Platform)
{
case TestPlatform.Local:
#if __IOS__
platform = Platform.iOS;
return ConfigureApp
.iOS
.AppBundle(GetLocalIOSTestAppPath()) .StartApp(Xamarin.UITest.Configuration.AppDataMode.Clear) as IApp;
#endif
}
Я не уверен, почему тесты не будут работать. Я попытался перейти на реальное устройство. Кроме того, файл .app
имеет то, что похоже на символ из знака остановки в качестве значка. Не уверен, что это значит. Я проверю, что это значит, но пока я в тупике. Любая помощь приветствуется. серьезно застрял здесь.
Возможно, вы на правильном пути, но у вас есть его в обратном порядке: «Этот пакет приложений не подходит для работы на симуляторе». Файл .ipa построен для устройства, а файл .app создан для симулятора, а не наоборот. –