Я тестирую приложение Xamarin.iOS на реальном устройстве (iPhone 6s с iOS 12.1) с помощью Xamarin.UITest.
Когда я запускаю несколько тестов пользовательского интерфейса, первый тест всегда вызывает сбой (независимо от того, что происходит внутри теста) из-за одной и той же ошибки (см. Ниже).
Окружающая среда:
Настройка:
[SetUp]
public void Setup(){
this.app = ConfigureApp.iOS
.EnableLocalScreenshots()
.InstalledApp("my.app.bundle")
.DeviceIdentifier("My-iPhone6s-UDID-With-iOS12.1")
.StartApp();
}
[Test]
public void FirstTestThatCouldBeEmpty(){
//But doesn't have to be empty to produce the error
}
Результирующая ошибка:
2019-01-17T14: 11: 20.4902700Z 1 - ClearData:> 2019-01-17T14: 11: 20.4916340Z bundleId: my.app.bundle
2019-01-17T14: 11: 20.4929580Z ID устройства: My-iPhone6s-UDID-With-iOS12.1
2019-01-17T14: 11: 33.7561260Z 3 - LaunchTestAsync:
2019-01-17T14: 11: 33.7574050Z ID устройства: My-iPhone6s-UDID-С-iOS12.1
2019-01-17T14: 11: 33.9279420Z 5 - Ошибка HTTP-запроса, достигнут предел повторных попыток
2019-01-17T14: 11: 33.9302300Z Исключение: System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка ---> System.Net.WebException: невозможно прочитать данные из транспортного соединения: соединение сбросить по пиру. ---> System.IO.IOException: Невозможно прочитать данные из транспортного соединения: Соединение сброшено узлом. ---> System.Net.Sockets.SocketException: сброс соединения по пиру
2019-01-17T14: 11: 33.9322710Z в System.Net.Sockets.Socket.EndReceive (System.IAsyncResult asyncResult) [0x00012] в <23340a11bb41423aa895298bf881ed68>: 0
2019-01-17T14: 11: 33.9340560Z в System.Net.Sockets.NetworkStream.EndRead (System.IAsyncResult asyncResult) [0x00057] в <23340a11bb41423aa895298bf881ed68>: 0
2019-01-17T14: 11: 33.9358740Z --- Конец трассировки стека внутренней исключительной ситуации ---
2019-01-17T14: 11: 33.9377100Z в System.Net.Sockets.NetworkStream.EndRead (System.IAsyncResult asyncResult) [0x0009b] в <23340a11bb41423aa895298bf881ed68>: 0
2019-01-17T14: 11: 33.9398100Z в System.IO.Stream + <> c.b__43_1 (поток System.IO.Stream, System.IAsyncResult asyncResult) [0x00000] в <98fac219bd4e453693d76fda7bd96ab0>: 0 * 1055
2019-01-17T14: 11: 33.9415720Z в System.Threading.Tasks.TaskFactory 1+FromAsyncTrimPromise
1 [TResult, TInstance] .Complete (TInstance thisRef, System.Func`3 [T1, T2, TResult] endMethod, System.IAsyncResult asyncResult, System.Boolean требуется синхронизация) [0x00000] в <98fac219bd4e453693d76fda7bd96ab0>: 0
Иногда именно эта ошибка:
SetUp: Xamarin.UITest.XDB.Exceptions.DeviceAgentException: невозможно завершить сеанс: при отправке запроса произошла ошибка
System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка
System.Net.WebException: невозможно прочитать данные из транспортного соединения: соединение сбрасывается по одноранговому узлу.
System.IO.IOException: Невозможно прочитать данные из транспортного соединения: Соединение сброшено по пиру.
System.Net.Sockets.SocketException: сброс соединения по пиру
Что может быть решением для этого?
Создание головоломки версии пакетов nuget позволило мне понять, что все тесты, кроме этого, работают.
Возможен фиктивный тест, но это может привести к тому, что графические сборки с этим тестом никогда не будут в состоянии "успешно", потому что этот тест не пройден = (