2015-06-11 8 views
8

मैं निम्न आदेश के साथ परीक्षण चलाने के लिए Gradle उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन इसके काम नहीं कर रहा से Gradle का उपयोग कर टेस्ट स्वीट चला सकते हैंकैसे मैं कमांड लाइन

gradle cleanTest test --tests my.package.TestSuite 

अपने परीक्षण सूट निम्नलिखित

तरह लग रहा है
@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    ATests.class, 
    BTests.class, 
    CTests.class 
}) 
public class MySuite { 
    /* placeholder, use this to contain all integration tests in one spot * */ 
} 

निम्न आदेश कार्यों को चलाने की कोशिश कर रहा है, लेकिन गंभीर रूप से पर्याप्त है, यह प्रत्येक परीक्षण को दो बार चलाता है। अपने आप में एक बार और उसके बाद फिर है कि एक ही नाम स्थान में टेस्ट स्वीट के तहत

gradle clean test --tests my.package.* 

मैं सिर्फ टेस्ट स्वीट छोड़ सकता है और यह इस तरह से करते हैं, लेकिन मैं बेहतर क्या यहाँ पर जा रहा समझने के लिए चाहते हैं और क्यों मैं नहीं बता सकता यह सीधे परीक्षण सूट चलाने के लिए।

+0

सुनिश्चित नहीं हैं कि अगर यह कमांड लाइन से संभव है। शायद आपको इसके लिए एक अलग कार्य परिभाषित करने की आवश्यकता है। – Opal

उत्तर

1

निम्नलिखित मेरे लिए स्थानीय रूप से काम करता है।

gradle -Dtest.single=MySuite clean test 

यह वास्तव में एक अलग दृष्टिकोण (परीक्षण शामिल किए जाने के) बनाम अधिक उन्नत छानने --test द्वारा इस्तेमाल किया दृष्टिकोण का उपयोग करता।

संदर्भित लिंक में दस्तावेज़ के रूप में, ऊपर दिया गया उदाहरण फॉर्म **/MySuite*.class के फ़ाइल समावेशन पैटर्न बनाकर काम करता है जबकि --test स्कैन किए गए परीक्षण सेट से परीक्षण का चयन करने का प्रयास करता है। मुझे संदेह है कि ग्रैडल में लागू जेनेरिक टेस्ट फ़िल्टरिंग और जुनीट सूट रनर के आसपास के विशिष्ट मामलों के बीच कुछ अनौपचारिक बातचीत हैं।

यह कहकर कि, ग्रैडल दस्तावेज़ भी चेतावनी देते हैं कि उपरोक्त दृष्टिकोण को हटा दिया गया है, और हकीकत में मैं शायद @ ओपल की टिप्पणी को प्रतिबिंबित करता हूं और परीक्षण के दिए गए चरण के लिए सूट चलाने के लिए एक स्पष्ट कार्य परिभाषित करता हूं। उदाहरण के लिए gradle clean testSuite के साथ निम्न रन एकीकरण सूट चला सकता है।

task testSuite(type: Test) { 
    include 'MySuite.class' 
} 

संदर्भ: