我正在使用Xamarin.UITest在真实设备(带有iOS 12.1的iPhone 6s)上测试Xamarin.iOS应用程序。 当我运行少数UI测试时,由于相同的错误(请参见下文),第一个测试总是会崩溃(无论测试中发生了什么)。
环境是:
Xamarin.UITest 2.2.7
NUnitTestAdapter 2.1.1
NUnit 2.6.3
Xamarin.TestCloud.Agent 0.21.7
设置为:
[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 deviceId:我的iPhone6s-UDID-With-iOS12.1
2019-01-17T14:11:33.7561260Z 3-LaunchTestAsync:
2019-01-17T14:11:33.7574050Z deviceId:我的iPhone6s-UDID-With-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年11月23日的System.Net.Sockets.NetworkStream.EndRead(System.IAsyncResult asyncResult)[0x00057]中的
2019-01-17T14:11:33.9340560Z:0:0
2019-01-17T14:11:33.9358740Z-内部异常堆栈跟踪结束---
2019年11月23日的System.Net.Sockets.NetworkStream.EndRead(System.IAsyncResult asyncResult)[0x0009b]中的
2019-01-17T14:11:33.9377100Z:0340
2019-01-17T14:11:33.9398100Z位于System.IO.Stream + <> c.b__43_1(System.IO.Stream流,System.IAsyncResult asyncResult)[0x00000]在<98fac219bd4e453693d76fda7bd96ab0>:0
中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 requireSynchronization)[0x00000]在<98fac219bd4e453693d76fda7bd96ab0>:0
有时候是这个错误:
SetUp:Xamarin.UITest.XDB.Exceptions.DeviceAgentException:无法结束会话:发送请求时发生错误
System.Net.Http.HttpRequestException:发送请求时发生错误
System.Net.WebException:无法从传输连接中读取数据:连接被对等方重置。
System.IO.IOException:无法从传输连接中读取数据:连接被对等方重置。
System.Net.Sockets.SocketException:对等重置连接
对此有什么解决方案? 进行nuget软件包的版本拼图使我走了这么远,所有测试都在此范围之外进行。
可能会进行虚拟测试,但这将导致那些测试的大量构建永远不会处于“成功”状态,因为该测试失败=(
答案 0 :(得分:0)
我能够找到解决此问题的方法,实际上是设备代理未连接到被测应用的任何问题。
public static IApp StartApp(Platform platform)
{
if (platform == Platform.iOS)
{
try
{
return ConfigureApp.iOS
.InstalledApp("com.example")
#if DEBUG
.Debug()
#endif
.StartApp();
}
catch
{
return ConfigureApp.iOS
.ConnectToApp()
#if DEBUG
.Debug()
#endif
;
}
}
用通俗易懂的语言:“如果您尝试启动该应用程序,但出了点问题,请尝试查看被测试的应用程序是否已启动并连接到该应用程序”