ग्रेडल - परीक्षण

परीक्षण कार्य स्वचालित रूप से परीक्षण स्रोत सेट में सभी इकाई परीक्षणों का पता लगाता है और निष्पादित करता है। परीक्षण के पूरा होने के बाद यह एक रिपोर्ट भी तैयार करता है। JUnit और TestNG समर्थित API हैं।

परीक्षण कार्य एक प्रदान करता है Test.getDebug()विधि है कि JVM डिबगर के लिए प्रतीक्षा करने के लिए लॉन्च करने के लिए सेट किया जा सकता है। निष्पादन से पहले, यह डिबगर पोस्ट को सेट करता है5005

टेस्ट डिटेक्शन

Test Taskसंकलित परीक्षण कक्षाओं का निरीक्षण करके पता लगाता है कि कौन सी कक्षाएं परीक्षण कक्षाएं हैं। डिफ़ॉल्ट रूप से यह सभी .class फ़ाइलों को स्कैन करता है। आप कस्टम को शामिल / बहिष्कृत कर सकते हैं, केवल उन वर्गों को स्कैन किया जाएगा। उपयोग किए गए परीक्षण ढांचे (JUnit / TestNG) के आधार पर, परीक्षण वर्ग का पता लगाने में विभिन्न मानदंडों का उपयोग होता है।

JUnit का उपयोग करते समय, हम JUnit 3 और 4 दोनों टेस्ट कक्षाओं के लिए स्कैन करते हैं। यदि निम्न में से कोई भी मापदंड मेल खाता है, तो कक्षा को JUnit परीक्षण वर्ग माना जाता है -

  • क्लास या एक सुपर क्लास TestCase या GroovyTestCase का विस्तार करती है
  • क्लास या सुपर क्लास को @RunWith के साथ एनोटेट किया जाता है
  • क्लास या सुपर क्लास में @Test के साथ एनोटेट किया गया तरीका होता है
  • TestNG का उपयोग करते समय, हम @Test के साथ एनोटेट किए गए तरीकों के लिए स्कैन करते हैं

Note- अमूर्त वर्गों को निष्पादित नहीं किया जाता है। ग्रैडल टेस्ट क्लासपाथ पर विरासत के पेड़ को जार फाइलों में भी स्कैन करता है।

यदि आप टेस्ट क्लास डिटेक्शन का उपयोग नहीं करना चाहते हैं, तो आप इसे सेटिंग द्वारा अक्षम कर सकते हैं scanForTestClasses असत्य को।

टेस्ट ग्रुपिंग

JUnit और TestNG परीक्षण विधियों के परिष्कृत समूहों की अनुमति देता है। समूहीकरण के लिए, JUnit परीक्षण कक्षाएं और विधियाँ JUnit 4.8 श्रेणियों की अवधारणा का परिचय देती हैं। परीक्षण कार्य उन JUnit श्रेणियों के विनिर्देशन की अनुमति देता है जिन्हें आप शामिल करना और बाहर करना चाहते हैं।

आप समूह परीक्षण विधियों में build.gradle फ़ाइल में निम्न कोड स्निपेट का उपयोग कर सकते हैं।

test {
   useJUnit {
      includeCategories 'org.gradle.junit.CategoryA'
      excludeCategories 'org.gradle.junit.CategoryB'
   }
}

शामिल करें और विशेष रूप से टेस्ट छोड़ें

Test क्लास ए है include तथा excludeतरीका। इन विधियों का उपयोग निर्दिष्ट करने के लिए किया जा सकता है, कौन से परीक्षण वास्तव में चलने चाहिए।

केवल सम्मिलित परीक्षण चलाएं -

test {
   include '**my.package.name/*'
}

बहिष्कृत परीक्षण छोड़ें -

test {
   exclude '**my.package.name/*'
}

नमूना build.gradle फ़ाइल के रूप में नीचे दिखाया गया है यह विभिन्न विन्यास विकल्प दिखाता है।

apply plugin: 'java' // adds 'test' task

test {
   // enable TestNG support (default is JUnit)
   useTestNG()

   // set a system property for the test JVM(s)
   systemProperty 'some.prop', 'value'

   // explicitly include or exclude tests
   include 'org/foo/**'
   exclude 'org/boo/**'

   // show standard out and standard error of the test JVM(s) on the console
   testLogging.showStandardStreams = true

   // set heap size for the test JVM(s)
   minHeapSize = "128m"
   maxHeapSize = "512m"

   // set JVM arguments for the test JVM(s)
   jvmArgs '-XX:MaxPermSize=256m'
   
   // listen to events in the test execution lifecycle
   beforeTest { 
      descriptor → logger.lifecycle("Running test: " + descriptor)
   }

   // listen to standard out and standard error of the test JVM(s)
   onOutput { 
      descriptor, event → logger.lifecycle
         ("Test: " + descriptor + " produced standard out/err: " 
         + event.message )
   }
}

कुछ परीक्षण कार्य को निष्पादित करने के लिए आप निम्न कमांड सिंटैक्स का उपयोग कर सकते हैं।

gradle <someTestTask> --debug-jvm