2009-11-24 17 views
13

मैं एक्सेल वीबीए मैक्रो पर काम कर रहा हूं जो कुछ एक्सेल फ़ाइल लेगा, इसे साफ़ करेगा/साफ़ करेगा, और 2 शीट्स के साथ एक वर्कबुक तैयार करेगा - चादर 1 मूल 'गंदे' फ़ाइल होगी, शीट 2 साफ़ रूप से साफ़ की गई फाइल होगी।वीबीए एक्सेल मैक्रो में यूनिट टेस्ट कैसे सेट करें?

चूंकि हमारे पास अभी 10 अलग-अलग प्रारूप हैं, और सड़क 40+ नीचे .. मैं इस आउटपुट को फ़ाइलों के दिए गए सेट के लिए सहेजना चाहता हूं, फिर एक यूनिट टेस्ट लिखें जो मूल इनपुट लेता है, हमारे मैक्रो चलाता है, फिर मैक्रो के आउटपुट को सहेजे गए, अनुमानित आउटपुट में तुलना करता है।

फिर जब भी हम रखरखाव करते हैं तो सड़क के नीचे किसी भी समय, हम यह सुनिश्चित करने के लिए जल्दी से और आसानी से हमारे यूनिट-टेस्ट चला सकते हैं कि हमने पहले से ही कुछ भी नहीं तोड़ दिया है।

यह मेरा पहला समय वीबीए के साथ काम कर रहा है। मैं फ्रेमवर्क या प्लग इन के लिए चारों ओर googled और बहुत मदद नहीं मिल सकता है। मुझे एक ऐसा फ़ंक्शन मिला जो 2 पूर्ण एक्सेल स्प्रेडशीट की तुलना करेगा - इसलिए मेरे पास वह हिस्सा है। लेकिन अब मुझे यह पता लगाने की जरूरत है कि वास्तव में इस इकाई परीक्षण को कैसे लिखना और निष्पादित करना है। इकाई परीक्षण लिखना बहुत सीधे आगे होना चाहिए - लेकिन मैं इसे कैसे निष्पादित करूं? मैं स्प्रेडशीट पर एक बटन नहीं डालना चाहता हूं जो 'रन यूनिट परीक्षण' कहता है ... क्या वीबीए/एक्सेल में सिर्फ मनमाने ढंग से कार्य करने के लिए कोई तरीका है, इसलिए मैं बस अपने यूनिटटेस्ट फ़ंक्शन पर राइट क्लिक कर सकता हूं और कर सकता हूं 'रन'?

इकाई परीक्षण के लिए मेरी योजनाओं की सराहना करने के बारे में कोई अतिरिक्त प्रतिक्रिया भी सराहना की जाएगी। एक बार फिर धन्यवाद।

उत्तर

9

तो यह मेरे थे, मैं एक दूसरे स्प्रेडशीट चादर परीक्षण किया जाना संदर्भ पैदा करेगा के लिए एक कड़ी है। (टूल्स> संदर्भ> ब्राउज पर जाएं) इस नई कार्यपुस्तिका में आपके मुख्य कार्यपुस्तिका को गंदे किए बिना सभी परीक्षण शामिल हो सकते हैं। यदि आप एक चाहते हैं तो यह आपके लिए एक इंटरफेस बनाने के लिए भी आपको मुक्त करता है।

एक तरफ ध्यान दें के रूप में, आप Excel मैक्रो मेनू से प्रक्रियाओं को छिपाने के लिए लेकिन अभी भी अपने मॉड्यूल डाल के शीर्ष पर, उन तक पहुंच चाहते हैं: तो फिर

Option Private Module 

सभी प्रक्रियाओं को आप चाहते हैं "सार्वजनिक" का उपयोग करने में सक्षम हो। फिर आप उन्हें तत्काल विंडो (VBE में ctrl-g) से कॉल कर सकते हैं लेकिन उन्हें मैक्रो सूची में सूचीबद्ध नहीं किया जाएगा।

लेकिन यदि आप अपने यूनिट परीक्षणों को अलग रखते हैं (जैसा कि आपको शायद चाहिए), तो आपको वास्तव में सार्वजनिक/निजी मॉड्यूल के बारे में चिंता करने की ज़रूरत नहीं है।

+0

विकल्प निजी मॉड्यूल टिप के लिए धन्यवाद .. – peege

5

वर्षों में इसे देखा नहीं है, लेकिन vbaUnit अच्छी तरह से काम करता था ...

+0

धन्यवाद, पहले से ही इसके बारे में पता था लेकिन मुझे यकीन नहीं था कि मुझे चादरों की तुलना कैसे करनी चाहिए। सभी को धन्यवाद – dferraro

1

ज़रूर, डेवलपर टैब (Excel 2007) वहाँ एक मैक्रो बटन है कि सभी उपलब्ध मैक्रो सूची आपके द्वारा चलाई जा है के तहत । आप सूची से चयन करेंगे और रन पर क्लिक करें। पुराने संस्करणों में यह वही कार्यक्षमता है, लेकिन मुझे याद नहीं है कि वे कहां स्थित हैं।

यहाँ 2003 के संस्करण

http://spreadsheets.about.com/od/advancedexcel/ss/excel_macro_5.htm

8

Rubberduck एक नि: शुल्क और मुक्त स्रोत वीबीई एड-इन है जिसमें एक आईडीई एकीकृत यूनिट परीक्षण ढांचा शामिल है और अधिकांश प्रमुख कार्यालय उत्पादों पर काम करता है।

  1. latest release डाउनलोड और इंस्टॉल करें।
  2. एक्सेल वर्कबुक खोलें, आपकी वीबीए परियोजना में रहती है।
  3. टूल्स >> रिफ्रेंस पर जाएं और रबरडक के लिए एक संदर्भ जोड़ें।
  4. एक नया मानक मॉड्यूल जोड़ें।
  5. '@TestModule विशेषता जोड़ें और Rubberduck.AssertClass

    `@TestModule 
    
    Private Assert As Rubberduck.Assert 
    
  6. प्रारंभ परीक्षण लेखन का एक उदाहरण बना सकते हैं। '@TestMethod विशेषता के साथ चिह्नित कोई भी सार्वजनिक सब परीक्षण एक्सप्लोरर द्वारा खोजा और चलाया जाएगा।

    '@TestMethod 
    Public Sub OnePlusOneIsTwo() 
        Assert.AreEqual 2, Add(1,1) 
    End Sub 
    

Unit Test Explorer

अधिक जानकारी के लिए कृपया Unit Testing page of the project's wiki देखते हैं।

अस्वीकरण:मैं प्रोजेक्ट के डेवलपर्स में से एक हूं।

+0

महान जानकारी। इसके लायक होने के लिए, लिंक किए गए विकी पर दिए गए निर्देश यहां दिए गए निर्देशों से अधिक वर्तमान हैं। – epotter

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