2008-10-10 11 views
5

मैंने कुछ यूनिट परीक्षण किए हैं (टेस्ट क्लास में)। मैंने जो ट्यूटोरियल पढ़ा है, उसने कहा कि मुझे unittests के लिए एक टेस्ट सूइट बनाना चाहिए।जुनीट और junit.framework.TestSuite - कोई रनने योग्य विधियां

विषम बात यह है कि जब मैं इकाई परीक्षण सीधे चला रहा हूं (परीक्षण कक्षा का चयन - जुनीट परीक्षण के रूप में चलाएं) सबकुछ ठीक काम कर रहा है, जब मैं परीक्षण सूट के साथ एक ही चीज़ की कोशिश कर रहा हूं तो हमेशा एक अपवाद होता है: java.lang.Exception: कोई रनने योग्य तरीकों।

import junit.framework.Test; 
import junit.framework.TestSuite; 

public class AllTests { 

public static Test suite() { 
    TestSuite suite = new TestSuite("Test suite for com.xxx.yyyy.test"); 
    //$JUnit-BEGIN$ 
    suite.addTestSuite(TestCase.class); 
    //$JUnit-END$ 
    return suite; 
    } 

} 

कोई भी विचार यह क्यों काम नहीं कर रहा:

यहाँ टेस्ट स्वीट का कोड है?

उत्तर

5

मुझे चींटी में अनुभव नहीं हुआ है - इसलिए मैं इसका परीक्षण करने के लिए इसका उपयोग नहीं कर रहा हूं।

इंटरनेट खोजना ऐसा लगता है जैसे मैं पुराने जुनीट 3.8 और जुनीट 4.0 व्यवहार को मिश्रित कर रहा हूं।
अब यह काम करता है:

import static org.junit.Assert.assertTrue; 
import org.junit.Test; 

public class TestCase { 
@Test 
    public void test1 { 
     assertTrue (tmp.getTermin().equals(soll)); 
    } 
} 
+0

हाय, मैं वही काम करता हूं हालांकि मुझे 'कोई रनने योग्य विधियां' त्रुटि नहीं मिलती – secret

0

निश्चित रूप से, यह काम नहीं करेगा क्योंकि आप टेस्ट सूट नहीं कह रहे हैं कि आपके टेस्ट क्लासेस क्या हैं।

लेकिन मुझे आश्चर्य है कि आप टेस्ट सूट बनाने के लिए "शास्त्रीय तरीके" का उपयोग क्यों नहीं कर रहे हैं, जो कि जुनीट के चींटी कार्यों का उपयोग कर चींटी है।

2

:

import org.junit.runner.RunWith; 
import org.junit.runners.Suite; 
import org.junit.runners.Suite.SuiteClasses; 


@RunWith(value=Suite.class) 
@SuiteClasses(value={TestCase.class}) 
public class AllTests { 

} 

testcase करने के लिए बदल:

AllTest करने के लिए बदल अब "नए व्यवहार"

संपादित उपयोग करने के लिए एक तरह से कोशिश कर रहा है इसे समझने के लिए मुझे थोड़ा सा लगा, लेकिन मुझे लगता है कि यह आपकी समस्या हल करता है:

आप एक suite.addTestSuite (TestCase.class) कर रहे हैं, जबकि आपको एक suite.addTest (TestCase.class) करना चाहिए था।

आप टेस्टाइट्स के पूरे पदानुक्रम को बनाने के लिए टेस्टाइट में टेस्टाइट भी जोड़ सकते हैं। उस स्थिति में आपको suite.addTest() का उपयोग करना होगा। लेकिन ध्यान दें कि फिर आप .suite() और नहीं .class: suite.addTest (MyTestSuite। सूट()) का उपयोग करें!

0

@Test के लिए आयात जोड़ने के लिए आईडीई के कोड-पूर्णता का उपयोग करते समय सावधान रहें। यह import org.junit.Test और import org.testng.annotations.Test, उदाहरण के लिए होना चाहिए। यदि आप बाद वाले करते हैं, तो आपको "कोई रनने योग्य विधियां" त्रुटि नहीं मिलेगी। (मैं इंटेलिज आइडिया 2017 का उपयोग कर रहा था जिसने org.junit.jupiter.api.Test आयात किया था!) ​​

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