2017-01-26 8 views
17

किसी अनुभवी और तय किया है। मैं फास्टलेन के माध्यम से दौड़ रहा हूं, प्रत्येक टेस्ट रन में असफल होने के लिए अलग-अलग परीक्षण दिखाई देते हैं।XCTests सिम्युलेटर में एप्लिकेशन को लॉन्च करने में नाकाम रहने के बीच-बीच में

OSX: 10.12.3 आईओएस सिम्युलेटर: 10.0 XCode 8.2.1 Fastlane 2.11.0

मेरी परीक्षणों में सेटअप और प्रक्षेपण के बीच 3 दूसरे नींद जोड़कर इसे ठीक करने का प्रयास किया गया, लेकिन यह अभी भी दिखाई देता है , शायद नहीं के रूप में अक्सर, लेकिन अभी भी ...

यूआई परीक्षण विफलता - शुरू करने के लिए विफलता का प्रयास कर रहा: त्रुटि डोमेन = FBSOpenApplicationServiceErrorDomain कोड = 1 "अनुरोध खोलने के लिए" no.something.bb.debug "विफल । " UserInfo = {NSLocalizedDescription "no.something.bb.debug" खोलने के लिए अनुरोध = विफल रहा है, NSLocalizedFailureReason = अनुरोध सेवा प्रतिनिधि (SBMainWorkspace) कारण के लिए ने मना कर दिया। व्यस्त ("एप्लिकेशन" no.something.bb .debug "स्थापित करने है या स्थापना रद्द, और लॉन्च नहीं किया जा सकता है")।, BSErrorCodeDescription = RequestDenied, NSUnderlyingError = 0x6080002598f0 {त्रुटि डोमेन = FBSOpenApplicationErrorDomain कोड = 6 "आवेदन " no.something.bb.debug "स्थापित करने या स्थापना रद्द कर रहा है , और लॉन्च नहीं किया जा सकता है। " UserInfo = {BSErrorCodeDescription = व्यस्त, NSLocalizedFailureReason = आवेदन "no.something.bb.debug" स्थापित करने या स्थापना रद्द है, और लॉन्च नहीं किया जा सकता है।}}}

+0

पर अधिक जानकारी प्राप्त कर सकते हैं क्या आपका यूआई परीक्षण तब होता है जब आप इसे एक्सकोड से चलाते हैं, इसे सीधे फास्टलेन से चलाने के बजाय? – HardikDG

+0

@ हार्डिकडीजी मेरे मामले में एक्सकोड का उपयोग कर स्थानीय मशीन पर परीक्षण हमेशा सफल होते हैं, लेकिन जब एक्सकोड सर्वर का उपयोग कर मैक मिनी पर चलते हैं तो प्रत्येक टेस्ट में लगभग 3% का मौका होता है कि यह असफल हो जाएगा। चूंकि हमारे पास 200 से अधिक यूआई परीक्षण हैं जो सर्वर पर निर्माण लगभग हमेशा असफल हो जाएंगे। (हमने 2 सप्ताह में 1 सफल निर्माण किया था) –

+0

मशीन को एसएसडी में अपग्रेड करना और 5 विफलताओं को अनुमति देने से अधिकांश त्रुटियों को हटा दिया गया है, फिर भी कभी-कभी हम उन्हें देखते हैं, लेकिन अक्सर नहीं ... (केवल 5 प्रयासों की अनुमति नहीं थी, लेकिन केवल अपग्रेड + रीट्रीज़ का संयोजन)। –

उत्तर

4

मैं एक ही मुद्दे का अनुभव किया। मुझे पता चला कि इसके लिए एक राइडर खुला है। टिप्पणियों में मुझे एक टिप मिली जो मैंने एक समारोह में लागू किया जो एक पुनः प्रयास करता है।

तर्क सारणी enum मानों की एक सरणी है जहां आधार प्रकार स्ट्रिंग है। मैं ऐप तर्कों के लिए इसका उपयोग करता हूं।

दुर्भाग्यवश यह अभी भी पूर्ण साबित नहीं हुआ है। मेरे मामले में असफलताओं की संख्या काफी नीचे गिर गई, लेकिन दूर नहीं गए।

var app: XCUIApplication = XCUIApplication() 
public func tryLaunch<T>(_ arguments: [T], _ counter: Int = 10) where T: RawRepresentable { 
    sleep(3) 
    XCUIApplication().terminate() 
    sleep(3) 

    app = XCUIApplication() 
    app.launchArguments = arguments.map { $0.rawValue as! String } 
    app.launch() 
    sleep(3) 
    if !app.exists && counter > 0 { 
     tryLaunch(arguments, counter - 1) 
    } 
} 

समारोह ऊपर https://github.com/evermeer/UITestHelper

+0

https://github.com/lionheart/openradar-mirror/issues/16226 और https://openradar.appspot.com/29735288 –

+1

ग्रेट सॉल्यूशन देखें, भले ही इसका पूर्ण प्रमाण @ एडविन न हो। ऐसा लगता है कि 'त्रुटि डोमेन = FBSOpenApplicationServiceErrorDomain कोड = 1 "को खोलने का अनुरोध" com.apple.test "खोलने का अनुरोध है।कुछ टेस्ट-रनर "'मैं मिल रहा था। धन्यवाद – JJacquet

1

में शामिल है के आसपास खेल रहे हैं हम देखा गया है कि यदि हम सीमित परीक्षण मामलों चलाने के लिए, इस त्रुटि काफी नीचे चला गया के बाद। आप https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/

संबंधित मुद्दे