için Xamarin UI Testleri çalıştırırken ClearAppData2 sonucunu bekleme süresi doldu. yerel testleri çalıştırırken, onlar iyi çalışır, ancak Bitrise CI onları çalıştırırken, iOS testler ince çalışır, ancak Android UI Testleri aşağıdaki istisna ile başarısız tutmak: Xamarin ile çalışanAndroid
StartFirstActivity_WaitForActivity_ExpectButtonToHaveText
SetUp : System.Exception : Timed out waiting for result of ClearAppData2
Stack trace:
at Xamarin.UITest.Shared.Android.Commands.CommandAdbClearAppData.Execute (IProcessRunner processRunner, IAndroidSdkTools androidSdkTools) <0x38b3e90 + 0x0064b> in <filename unknown>:0
at Xamarin.UITest.Shared.Execution.Executor.Execute[TDep1,TDep2] (ICommand2 command) <0x32b6478 + 0x00092> in <filename unknown>:0
at Xamarin.UITest.Shared.Android.LocalAndroidAppLifeCycle.EnsureInstalled (Xamarin.UITest.Shared.Android.ApkFile appApkFile, Xamarin.UITest.Shared.Android.ApkFile testServerApkFile) <0x37418c8 + 0x0017a> in <filename unknown>:0
at Xamarin.UITest.Android.AndroidApp..ctor (IAndroidAppConfiguration appConfiguration) <0x31a15e8 + 0x0047a> in <filename unknown>:0
at Xamarin.UITest.Configuration.AndroidAppConfigurator.StartApp (AppDataMode appDataMode) <0x30b4298 + 0x00063> in <filename unknown>:0
at SightPlayer.Core.Test.AppInitializer.StartApp (Platform platform) <0x30b2448 + 0x000ef> in <filename unknown>:0
at SightPlayer.Core.Test.Tests.BeforeEachTest() <0x30b23f8 + 0x00013> in <filename unknown>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x30b2208 + 0x00093> in <filename unknown>:0
Android testi En iyi sürüm 1.3.5. Bu önemli, bug until version 1.3.3 olduğu görülüyor. Ayrıca, başarısız olan testleri görmezden gelmeyi denedim, ancak test koşucusu diğer Android testleriyle başarısız oluyor. İlginçtir ki bazen bireysel testler geçer.
Herkes önce bu davranışı karşılaştı? Bunu nasıl düzeltebileceğiniz konusunda tavsiyeleriniz var mı?
(istisna atar) decompiling CommandAdbClearAppData, ben oluşturulan dosya on saniye içinde bulunamadı belirtir
// ISSUE: reference to a compiler-generated field
string str1 = string.Format("/data/data/{0}/files/calabash_failure.out", (object)executeCAnonStorey0.svr);
// ISSUE: reference to a compiler-generated field
string str2 = string.Format("/data/data/{0}/files/calabash_finished.out", (object)executeCAnonStorey0.svr);
while (DateTime.UtcNow < utcNow + TimeSpan.FromSeconds(10.0))
{
if (func(string.Format("ls {0}", (object)str1)).Output.Trim().Equals(str1))
throw new Exception("Clear app data failed with " + func(string.Format("cat {0}", (object)str1)).Output);
if (func(string.Format("ls {0}", (object)str2)).Output.Trim().Equals(str2) && func(string.Format("cat {0}", (object)str2)).Output.Trim().Equals("SUCCESSFUL"))
return;
}
throw new Exception("Timed out waiting for result of ClearAppData2");
görünce. o emülatör sadece çok yavaş ve emülatör bu dosyaları oluşturmak için uzun on saniyeden daha alır, olabilir mi?
Bu testleri yerel olarak çalıştırdığınızda, bunları bir taklitçide de mi çalıştırıyorsunuz? Emülatörler kesinlikle takılı bir cihazdan biraz daha yavaştır. WaitTimes'ın yapılandırmasını daha uzun bir bekleme süresine değiştirmeyi denemenizi öneririz: https://developer.xamarin.com/api/member/Xamarin.UITest.Configuration.AndroidAppConfigurator.WaitTimes/p/Xamarin.UITest.Utils.IWaitTimes/ –
Testleri her zaman bir emülatör üzerinde çalıştırıyorum, ancak x86 görüntüleri ile çalışan emülatörlerle (yani gerçek cihazlardan neredeyse daha hızlıdır). Ve ben zaten WaitTimes altı dakika için yapılandırılmış var. –