के लिए एक्समारिन यूआई टेस्ट चलाने के दौरान ClearAppData2 के परिणाम के लिए प्रतीक्षा करने का समय समाप्त हो गया है मैंने Xamarin UITest ढांचे के साथ अपने Xamarin एप्लिकेशन के लिए स्वचालित एंड्रॉइड और आईओएस यूआई-टेस्ट बनाए हैं। जब परीक्षण स्थानीय स्तर पर चल रहा है, वे ठीक काम करते हैं, लेकिन जब उन्हें Bitrise सीआई पर चल रहा है, आईओएस परीक्षण ठीक चलाते हैं, लेकिन एंड्रॉयड यूआई टेस्ट निम्न अपवादों के साथ बार-बार विफल: Xamarin साथ चल रहे हैंएंड्रॉइड
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
एंड्रॉयड परीक्षण यूआईटीएस्ट संस्करण 1.3.5। यह महत्वपूर्ण है, क्योंकि ऐसा लगता है कि bug until version 1.3.3 है। मैंने असफल परीक्षणों को अनदेखा करने का भी प्रयास किया है, लेकिन फिर परीक्षण-धावक अन्य एंड्रॉइड परीक्षणों में विफल रहता है। दिलचस्प है कि कभी-कभी व्यक्तिगत परीक्षण पास होते हैं।
क्या किसी ने इससे पहले इस व्यवहार का सामना किया है? क्या आपको यह ठीक करने के बारे में कोई सलाह है?
decompiling CommandAdbClearAppData (जो अपवाद फेंकता है), मैं देख रहा हूँ जब
// 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");
जो इंगित करता है कि उत्पन्न फ़ाइल दस सेकंड के भीतर नहीं पाया जा सका। क्या यह हो सकता है कि एमुलेटर बहुत धीमा है और एम्यूलेटर उन फ़ाइलों को बनाने के लिए दस सेकंड से अधिक समय लेता है?
जब आप स्थानीय रूप से इन परीक्षणों को चलाते हैं, तो क्या आप उन्हें एक एमुलेटर पर भी चला रहे हैं? डिवाइस में प्लग किए गए अनुकरणकर्ता निश्चित रूप से थोड़ा धीमे होते हैं। मैं 'प्रतीक्षा समय' कॉन्फ़िगरेशन को लंबे समय तक प्रतीक्षा करने की कोशिश करने की अनुशंसा करता हूं: https://developer.xamarin.com/api/member/Xamarin.UITest.Configuration.AndroidAppConfigurator.WaitTimes/p/Xamarin.UITest.Utils.IWaitTimes/ –
मैं हमेशा एक एमुलेटर पर परीक्षण चला रहा हूं, लेकिन x86 छवियों के साथ चलने वाले अनुकरणकर्ताओं के साथ (इसलिए वे वास्तव में वास्तविक उपकरणों की तुलना में लगभग तेज़ हैं)। और मेरे पास पहले से ही प्रतीक्षा मिनटों को छह मिनट में कॉन्फ़िगर किया गया है। –