2009-12-14 6 views
10

मैं ओसीयूनीट और Google टूल बॉक्स के बीच चयन करने की कोशिश कर रहा हूं, क्या आपके पास कोई वरीयता है, एक या दूसरे की सिफारिश करेंगे, क्यों? उनमें से कोई भी कर रहा था: मैं बहुत 2.यूनिट परीक्षण और टीडीडी, ओसीयूनीट बनाम Google टूल बॉक्स

मुख्य समस्या यह है कि मैं उन दोनों के साथ है से किसी के साथ अपने अनुभवों के बारे में सुनने के लिए दिलचस्पी होगी परीक्षण किया तरीकों (खराब पहुंच पूर्व) में दुर्घटनाओं की प्रबंधन है मुझे बताए कि किस वर्ग में दुर्घटना हुई !!!

गूगल टूल बॉक्स के साथ

मैं देख सकता हूँ जो टेस्ट स्वीट चलाया जा रहा था, लेकिन नहीं परीक्षण का मामला (आप कैसे करना है जब अपने टेस्ट स्वीट 50 टेस्ट केस है अपेक्षा की जाती है?) OCUnit के साथ मैं कम से कम देख सकते हैं

परीक्षण परीक्षण सूट में क्या परीक्षण मामला दुर्घटना का कारण बन गया।

यहाँ मैं GTB के साथ संदेश की तरह है:

Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.000) seconds 

Test Suite 'LogicTests' started at 2009-12-14 18:03:15 +0100 

/Users/admin/Documents/Tests/GTBTest/RunIPhoneUnitTest.sh: line 122: 688 Segmentation fault  "$TARGET_BUILD_DIR/$EXECUTABLE_PATH" -RegisterForSystemEvents 

Command /bin/sh failed with exit code 139 

मैं देख सकता हूँ कि यह यह टेस्ट स्वीट 'LogicTests' कि दुर्घटना जन्म लिया है, लेकिन इतना ही है।

OCunit यहाँ के साथ एक ही त्रुटि के लिए संदेश है:

Test Suite 'LogicTests' started at 2009-12-14 17:51:26 +0100 
Test Case '-[LogicTests testFail]' started. 
/Developer/Tools/RunPlatformUnitTests.include: line 415: 536 Segmentation fault  "${THIN_TEST_RIG}" "${OTHER_TEST_FLAGS}" "${TEST_BUNDLE_PATH}" 

कम से कम OCUnit साथ मैं ट्रैक कर सकते हैं क्या परीक्षण का मामला चलाने जा रहा था और अंत में यह डिबग (लेकिन है कि किसी भी बिना एक बहुत लंबे समय ले सकता है कक्षा और रेखा संख्या जानकारी ...)

आप इन समस्याओं से कैसे निपटते हैं?

अग्रिम धन्यवाद।

पुनश्च:

बस एक विधि है कि दुर्घटनाओं जब यह कहा जाता है (जो हर समय जब आप TDD कर रहे हैं होता है) के साथ एक वर्ग बनाने के लिए:: यहाँ कैसे समस्या को पुन: करने के लिए है, यह बहुत आसान है

- (void) crashMethod { 
NSMutableArray *crashArray; 
[crashArray addObject:[NSObject new]]; 
} 

और फिर एक परीक्षण का मामला है कि इस तरीकों कॉल बनाने के लिए:

- (void) testFail { 
    ClassToTest *test = [[ClassToTest alloc] init]; 
[test crashMethod]; 
[test release]; 
} 

अग्रिम धन्यवाद, विन्सेंट

उत्तर

3

मुझे लगता है कि मैं GTB के साथ वैसे भी जाता हूँ ..

Xcode 3.2 OCUnit त्रुटियों और चेतावनियों के साथ कोड के अंदर दिखाई नहीं दे रहे। लगता है कि यह एक ज्ञात मुद्दा है: lhttp://osdir.com/ml/xcode-users/2009-10/msg00216.html

जीटीबी के साथ यह ठीक काम करता है। मुझे विश्वास नहीं है लेकिन ऐसा लगता है कि जीटीबी ओसीयूनीट की तुलना में एक्सकोड के नए संस्करणों के साथ बेहतर एकीकृत है ....

यूनिट परीक्षणों के डिबगिंग को किसी भी चीज की आवश्यकता नहीं है, यह शुरुआत से बहुत अच्छा काम करता है। (Xcode के साथ आप सेटिंग्स का एक समूह की जरूरत है: http://chanson.livejournal.com/119578.html

GTB के साथ आप डिवाइस पर अपने परीक्षण चला सकते हैं और आप यूआई परीक्षण के लिए उपकरण (लगता है कि आप एक नकली UIView पदानुक्रम बनाने और उसके बाद तुम्हारे पास क्या है के साथ तुलना कर सकते हैं रनटाइम पर)। मैं यूआई स्वचालित परीक्षण (महंगी और बनाए रखने के लिए कड़ी मेहनत) के बारे में संदेह कर रहा हूं लेकिन यह एक अच्छी सुविधा है!

http://code.google.com/p/google-toolbox-for-mac/wiki/CodeVerificationAndUnitTesting

+0

@ user142764 ;-) सोच रहा था: कैसे आप तो GTB साथ डिबग इकाई परीक्षण करते हैं? निश्चित रूप से आपको अभी भी एक कस्टम निष्पादन योग्य की आवश्यकता है? – jkp

+0

जीटीबी के साथ यह अच्छा नहीं है: चूंकि आप अपने परीक्षण चलाने के लिए सामान्य लक्ष्य का उपयोग करते हैं, तो आप इसे डीबग कर सकते हैं! बस एक परीक्षा लिखें, अंदर ब्रेकपॉइंट डालें, फिर मेनू से रन-> डीबग करें और वहां है: आप चरणबद्ध रूप से अपने परीक्षण चरण को डिबग कर रहे हैं। – user142764

0

BTW गूगल टूलबॉक्स अब प्रिंट टेस्ट मामले मामला किसी में संदेशों शुरू कर दिया

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