Erlang 21

common_test




erlang

common_test

मॉड्यूल

common_test

मॉड्यूल सारांश

किसी भी लक्ष्य नोड के स्वचालित परीक्षण के लिए एक रूपरेखा।

विवरण

Common Test ढांचा परीक्षण मामलों के स्वचालित और अर्ध-स्वचालित निष्पादन को लागू करने और निष्पादित करने के लिए एक वातावरण है।

संक्षेप में, Common Test समर्थन करता है:

  • परीक्षण सूट का स्वचालित निष्पादन (परीक्षण मामलों के सेट)
  • निष्पादन के दौरान घटनाओं का लॉगिंग
  • परीक्षण सूट परिणामों की HTML प्रस्तुति
  • परीक्षण सूट कोड की HTML प्रस्तुति
  • परीक्षण सूट लेखकों के लिए समर्थन कार्य
  • परीक्षण मामलों का चरण-दर-चरण निष्पादन

निम्न अनुभाग अनिवार्य और वैकल्पिक परीक्षण सूट फ़ंक्शन का वर्णन करता है जो परीक्षण निष्पादन के दौरान Common Test कॉल करता है। अधिक जानकारी के लिए, उपयोगकर्ता के गाइड में सेक्शन Writing Test Suites देखें।

टेस्ट केस कॉलबैक फ़ंक्शंस

निम्न कार्य एक परीक्षण सूट के लिए कॉलबैक इंटरफ़ेस को परिभाषित करते हैं।

निर्यात

मॉड्यूल: सभी () -> टेस्ट | {छोड़, कारण}

प्रकार

अनिवार्य

निष्पादित किए जाने वाले टेस्ट सूट मॉड्यूल में सभी परीक्षण मामलों और परीक्षण केस समूहों की सूची लौटाता है। यह सूची उन आदेशों को भी निर्दिष्ट करती है जो मामलों और समूहों को Common Test द्वारा निष्पादित किए जाते हैं। एक परीक्षण मामले को एक परमाणु द्वारा दर्शाया जाता है, परीक्षण केस फ़ंक्शन का नाम। एक टेस्ट केस ग्रुप को group टपल द्वारा दर्शाया जाता है, जहां GroupName , एक परमाणु, समूह का नाम ( groups/0 में परिभाषित) है। समूहों के लिए निष्पादन गुण भी निर्दिष्ट किए जा सकते हैं, दोनों एक शीर्ष-स्तरीय समूह और उसके किसी भी उपसमूह के लिए। यहां निर्दिष्ट समूह निष्पादन गुण समूह परिभाषा ( groups/0 देखें) में गुणों को ओवरराइड करते हैं। (मान default साथ, समूह परिभाषा गुण उपयोग किए जाते हैं)।

यदि {skip,Reason} वापस किया जाता है, तो मॉड्यूल के सभी परीक्षण मामले छोड़ दिए जाते हैं और Reason HTML परिणाम पृष्ठ पर मुद्रित होता है।

समूहों के विवरण के लिए, उपयोगकर्ता गाइड में अनुभाग Test Case Groups देखें।

मॉड्यूल: समूह () -> GroupDefs

प्रकार

वैकल्पिक

परीक्षण केस समूहों को परिभाषित करता है। विवरण के लिए, उपयोगकर्ता गाइड में अनुभाग Test Case Groups देखें।

मॉड्यूल: सूट () -> [जानकारी]

प्रकार

वैकल्पिक

परीक्षण सूट सूचना समारोह। इस परीक्षण सूट के निष्पादन से संबंधित विभिन्न गुणों को निर्दिष्ट करते हुए टैग किए गए ट्यूपल्स की सूची देता है (सूट में सभी परीक्षण मामलों के लिए सामान्य)।

टैग समय-सीमा अधिकतम समय निर्धारित करती है कि प्रत्येक परीक्षण मामले को निष्पादित करने की अनुमति है ( init_per_testcase/2 और end_per_testcase/2 )। यदि समय-सीमा समय से अधिक हो जाती है, तो परीक्षण का मामला कारण समय-सीमा के साथ विफल हो जाता है। TimeFunc फ़ंक्शन का उपयोग टाइमवैल को वापस करके एक नई समयरेखा सेट करने के लिए किया जा सकता है। इसका उपयोग किसी समय पर टाइम-आउट को ट्रिगर करने के लिए भी किया जा सकता है, किसी समय-समय के अलावा किसी मान को वापस करते TimeVal । विवरण के लिए, उपयोगकर्ता के गाइड में अनुभाग Timetrap Time-Outs देखें।

टैग की require सूट में परीक्षण मामलों (या कॉन्फ़िगरेशन फ़ंक्शन) द्वारा आवश्यक कॉन्फ़िगरेशन चर निर्दिष्ट करें। यदि आवश्यक कॉन्फ़िगरेशन चर किसी भी कॉन्फ़िगरेशन फ़ाइल में नहीं पाए जाते हैं, तो सभी परीक्षण मामले छोड़ दिए जाते हैं। require कार्यक्षमता के बारे में जानकारी के लिए, funtion ct:require/1,2 देखें ct:require/1,2

उपयोगकर्ताडेटा के साथ, उपयोगकर्ता किसी भी परीक्षण सूट-संबंधी जानकारी को निर्दिष्ट कर सकता है, जिसे ct:userdata/2 कहकर पढ़ा जा सकता है।

टैग ct_hooks इस सूट के साथ चलने के लिए Common Test Hooks निर्दिष्ट करता है।

परिभाषित की तुलना में अन्य tuples की अनदेखी की जाती है।

परीक्षण सूट सूचना फ़ंक्शन के बारे में जानकारी के लिए, उपयोगकर्ता गाइड में अनुभाग Test Suite Information Function देखें।

मॉड्यूल: init_per_suite (विन्यास) -> NewConfig | {स्किप, रीज़न} | {skip_and_save, कारण, SaveConfig}

प्रकार

वैकल्पिक; यदि यह फ़ंक्शन परिभाषित है, तो end_per_suite/1 को भी परिभाषित किया जाना चाहिए।

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

यदि {skip,Reason} वापस किया जाता है, तो सुइट में सभी परीक्षण मामलों को छोड़ दिया जाता है और Reason सूट के लिए अवलोकन लॉग में मुद्रित किया जाता है।

save_config और skip_and_save जानकारी के लिए, उपयोगकर्ता के गाइड में सेक्शन Saving Configuration Data देखें।

मॉड्यूल: end_per_suite (विन्यास) -> शब्द () | {save_config, SaveConfig}

प्रकार

वैकल्पिक; यदि यह फ़ंक्शन परिभाषित है, तो init_per_suite/1 को भी परिभाषित किया जाना चाहिए।

इस फ़ंक्शन को सुइट में अंतिम परीक्षण मामले के रूप में कहा जाता है। इसका उपयोग init_per_suite/1 बाद सफाई के लिए किया जाना है।

save_config पर जानकारी के लिए, उपयोगकर्ता के गाइड में सेक्शन Saving Configuration Data देखें।

मॉड्यूल: समूह (GroupName) -> [जानकारी]

प्रकार

वैकल्पिक

टेस्ट केस ग्रुप इंफॉर्मेशन फंक्शन। यह टैग किए गए ट्यूपल्स की एक सूची को वापस करना है जो एक परीक्षण केस समूह (यानी, इसके परीक्षण मामलों और उपसमूहों) के निष्पादन से संबंधित विभिन्न गुणों को निर्दिष्ट करते हैं। group/1 द्वारा निर्धारित गुण group/1 ओवरराइड गुण उसी कुंजी के साथ जो पहले suite/0 द्वारा निर्धारित किया गया है।

टैग समय-सीमा अधिकतम समय निर्धारित करती है कि प्रत्येक परीक्षण मामले को निष्पादित करने की अनुमति है ( init_per_testcase/2 और end_per_testcase/2 )। यदि समय-सीमा समय से अधिक हो जाती है, तो परीक्षण का मामला कारण समय-सीमा के साथ विफल हो जाता है। TimeFunc फ़ंक्शन का उपयोग टाइमवैल को वापस करके एक नई समयरेखा सेट करने के लिए किया जा सकता है। इसका उपयोग किसी समय पर टाइम-आउट को ट्रिगर करने के लिए भी किया जा सकता है, किसी समय-समय के अलावा किसी मान को वापस करते TimeVal । विवरण के लिए, उपयोगकर्ता के गाइड में अनुभाग Timetrap Time-Outs देखें।

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

उपयोगकर्ताडेटा के साथ, उपयोगकर्ता किसी भी टेस्ट केस ग्रुप संबंधित जानकारी को निर्दिष्ट कर सकता है जिसे ct:userdata/2 कहकर पढ़ा जा सकता है।

टैग ct_hooks इस सूट के साथ चलने के लिए Common Test Hooks निर्दिष्ट करता है।

परिभाषित की तुलना में अन्य tuples की अनदेखी की जाती है।

टेस्ट केस Group Information Function में Group Information Function लिए यूजर गाइड में सेक्शन Group Information Function देखें।

मॉड्यूल: init_per_group (GroupName, config) -> NewConfig | {छोड़, कारण}

प्रकार

वैकल्पिक; यदि यह फ़ंक्शन परिभाषित है, तो end_per_group/2 को भी परिभाषित किया जाना चाहिए।

यह कॉन्फ़िगरेशन फ़ंक्शन परीक्षण केस समूह के निष्पादन से पहले कहा जाता है। इसमें आम तौर पर वे इनिशियलाइज़ेशन शामिल होते हैं जो समूह के सभी परीक्षण मामलों और उपसमूहों के लिए सामान्य होते हैं, और यह केवल एक बार किया जाना चाहिए। GroupName का नाम है, जैसा कि समूह परिभाषा में निर्दिष्ट है (देखें groups/0 )। पैरामीटर Config कॉन्फ़िगरेशन डेटा है जिसे संशोधित किया जा सकता है। इस फ़ंक्शन का रिटर्न मान समूह में सभी परीक्षण मामलों और उपसमूहों के लिए Config रूप में दिया गया है।

यदि {skip,Reason} वापस किया जाता है, तो समूह में सभी परीक्षण मामले छोड़ दिए जाते हैं और समूह के लिए अवलोकन लॉग में Reason मुद्रित होता है।

परीक्षण केस समूहों के बारे में जानकारी के लिए, उपयोगकर्ता गाइड में अनुभाग Test Case Groups देखें।

मॉड्यूल: end_per_group (GroupName, config) -> शब्द () | {return_group_result, स्थिति}

प्रकार

वैकल्पिक; यदि यह फ़ंक्शन परिभाषित है, तो init_per_group/2 को भी परिभाषित किया जाना चाहिए।

यह कार्य परीक्षण केस समूह के निष्पादन के बाद कहा जाता है। इसका उपयोग init_per_group/2 बाद सफाई के लिए किया जाना है। नेस्टेड उपसमूह के लिए एक स्थिति मान {return_group_result,Status} साथ वापस किया जा सकता है। ऊपर के स्तर पर समूह के लिए स्थिति को end_per_group/2 में पुनर्प्राप्त किया जा सकता है। स्थिति का उपयोग Common Test द्वारा यह निर्णय लेने के लिए भी किया जाता है कि किसी समूह का निष्पादन संपत्ति sequence या repeat_until_* सेट है या नहीं।

परीक्षण केस समूहों के बारे में विवरण के लिए, उपयोगकर्ता गाइड में अनुभाग Test Case Groups देखें।

मॉड्यूल: init_per_testcase (TestCase, config) -> NewConfig | {विफल, कारण} | {छोड़, कारण}

प्रकार

वैकल्पिक; यदि यह फ़ंक्शन परिभाषित है, तो end_per_testcase/2 को भी परिभाषित किया जाना चाहिए।

प्रत्येक परीक्षण मामले से पहले यह फ़ंक्शन कहा जाता है। तर्क TestCase टेस्ट केस नाम है, और Config (कुंजी-मूल्य ट्यूपल्स की सूची) कॉन्फ़िगरेशन डेटा है जिसे संशोधित किया जा सकता है। इस फ़ंक्शन से लौटाई गई NewConfig सूची को परीक्षण मामले के लिए Config रूप में दिया गया है। यदि {fail,Reason} वापस किया जाता है, तो परीक्षण मामले को निष्पादित किए बिना विफल के रूप में चिह्नित किया जाता है।

यदि {skip,Reason} लौटाया जाता है, तो परीक्षण का मामला छोड़ दिया जाता है और Reason सुइट के लिए अवलोकन लॉग में मुद्रित किया जाता है।

मॉड्यूल: end_per_testcase (TestCase, config) -> शब्द () | {विफल, कारण} | {save_config, SaveConfig}

प्रकार

वैकल्पिक; यदि यह फ़ंक्शन परिभाषित है, तो init_per_testcase/2 को भी परिभाषित किया जाना चाहिए।

यह फ़ंक्शन प्रत्येक परीक्षण मामले के बाद कहा जाता है, और init_per_testcase/2 और परीक्षण मामले के बाद साफ करने के लिए इस्तेमाल किया जा सकता है। कोई भी वापसी मान ( {fail,Reason} और {save_config,SaveConfig} ) को अनदेखा किया जाता है। {fail,Reason} वापस करके, TestCase को दोषपूर्ण के रूप में चिह्नित किया जाता है (भले ही यह इस अर्थ में सफल था कि यह समाप्त होने के बजाय एक मूल्य लौटाता है)।

save_config पर जानकारी के लिए, उपयोगकर्ता के गाइड में सेक्शन Saving Configuration Data देखें।

मॉड्यूल: टेस्टकेस () -> [जानकारी]

प्रकार

वैकल्पिक

परीक्षण मामले की जानकारी समारोह। यह टैग किए गए टुपल्स की सूची को वापस करना है जो इस विशेष परीक्षण मामले के निष्पादन से संबंधित विभिन्न गुणों को निर्दिष्ट करते हैं। group/1 या suite/0 द्वारा परीक्षण मामले के लिए पहले से निर्धारित Testcase/0 ओवरराइड गुणों द्वारा निर्धारित गुण।

टैग समय-सीमा निर्धारित करता है कि परीक्षण मामले को निष्पादित करने की अनुमति अधिकतम समय है। यदि समय-सीमा समय से अधिक हो जाती है, तो परीक्षण का मामला कारण समय-सीमा के साथ विफल हो जाता है। init_per_testcase/2 और end_per_testcase/2 को समयावधि के समय में शामिल किया गया है। TimeFunc फ़ंक्शन का उपयोग टाइमवैल को वापस करके एक नई समयरेखा सेट करने के लिए किया जा सकता है। इसका उपयोग किसी समय पर टाइम-आउट को ट्रिगर करने के लिए भी किया जा सकता है, किसी समय-समय के अलावा किसी मान को वापस करते TimeVal । विवरण के लिए, उपयोगकर्ता के गाइड में अनुभाग Timetrap Time-Outs देखें।

टैग के require कॉन्फ़िगरेशन चर निर्दिष्ट करने की require होती है जो परीक्षण मामले (या init_per_testcase/2 या end_per_testcase/2 ) द्वारा आवश्यक हैं। यदि किसी कॉन्फ़िगरेशन फ़ाइल में आवश्यक कॉन्फ़िगरेशन चर नहीं पाए जाते हैं, तो परीक्षण केस छोड़ दिया जाता है। कार्यक्षमता की require बारे में विवरण के लिए, फ़ंक्शन ct:require/1,2 देखें ct:require/1,2

यदि समय- timetrap या require सेट नहीं है, तो suite/0 (या group/1 ) द्वारा निर्दिष्ट डिफ़ॉल्ट मान का उपयोग किया जाता है।

उपयोगकर्ताडेटा के साथ, उपयोगकर्ता किसी भी परीक्षण केस-संबंधी जानकारी को निर्दिष्ट कर सकता है जिसे ct:userdata/3 कहकर पढ़ा जा सकता है।

परिभाषित की तुलना में अन्य tuples की अनदेखी की जाती है।

परीक्षण केस सूचना फ़ंक्शन के विवरण के लिए, उपयोगकर्ता गाइड में अनुभाग Test Case Information Function देखें।

मॉड्यूल: टेस्टकेस (कॉन्फ़िगरेशन) -> शब्द () | {स्किप, रीज़न} | {टिप्पणी, टिप्पणी} | {save_config, SaveConfig} | {Skip_and_save, कारण, SaveConfig} | बाहर जाएं()

प्रकार

अनिवार्य

एक परीक्षण मामले का कार्यान्वयन। परीक्षण और परिणाम की जांच करने के लिए फ़ंक्शन को कॉल करें। यदि कुछ विफल हो जाता है, तो सुनिश्चित करें कि फ़ंक्शन रनटाइम त्रुटि का कारण बनता है या कॉल ct:fail/1,2 (जो परीक्षण मामले की प्रक्रिया को समाप्त करने का कारण बनता है)।

Config सूची के तत्व, उदाहरण के लिए, proplists:get_value/2 साथ पढ़े जा सकते हैं proplists:get_value/2 में STDLIB (या ct.hrl में परिभाषित मैक्रो ?config )।

यदि आप सभी के बाद परीक्षण मामले को नहीं चलाने का निर्णय लेते हैं, {skip,Reason} Reason तब HTML परिणाम पृष्ठ पर फ़ील्ड Comment में मुद्रित किया जाता है।

HTML परिणाम पृष्ठ पर फ़ील्ड Comment में कुछ जानकारी मुद्रित करने के लिए, {comment,Comment}

यदि फ़ंक्शन कुछ और देता है, तो परीक्षण मामले को सफल माना जाता है। रिटर्न वैल्यू हमेशा टेस्ट केस लॉग फाइल में प्रिंट हो जाती है।

परीक्षण मामले के कार्यान्वयन के बारे में जानकारी के लिए, उपयोगकर्ता गाइड में अनुभाग Test Cases देखें।

save_config और skip_and_save जानकारी के लिए, उपयोगकर्ता के गाइड में सेक्शन Saving Configuration Data देखें।