2009-01-05 8 views
47

क्या मैन्युअल रूप से परीक्षण सूट बनाने के बिना एक ही समय में एकाधिक पैकेजों के लिए जुनीट परीक्षण चलाने के लिए संभव है।क्या एक्लिप्स में एकाधिक पैकेजों से जुनीट परीक्षण चला सकते हैं?

उदाहरण के लिए अगर मैं पदानुक्रम है:

code.branchone
code.branchone.aaa
code.branchone.bbb
code.branchtwo
code.branchtwo.aaa
code.branchtwo .bbb

है यह संभव करने के लिए:

  1. कहते code.branchone.aaa में सभी परीक्षणों code.branchone में और
  2. भागो वंशज संकुल में सभी परीक्षणों को चलाएं और

code.branchtwo.bbb समस्या मैं मैन्युअल रूप से परीक्षण स्वीट बनाने के साथ देख यह है कि जब नई परीक्षण आप के साथ आने के लिए भूल सकते हैं।

+5

काम के नीचे दिए गए कोई भी जवाब नहीं। मेरी भी यही समस्या है। मैं "code.branchone.aaa" में सभी परीक्षण चला सकता हूं लेकिन यदि मैं रूट "code.branchone" पर जाता हूं तो यह कहता है "परीक्षण धावक 'जूनिट 4' के साथ कोई परीक्षण नहीं मिला। ध्यान रखें कि "code.branchone" में इसका कोई स्रोत नहीं है। – Bdoserror

+0

अतिरिक्त भ्रम नोट: मेरी परियोजना (किसी और द्वारा निर्मित) में पहले से ही एक लॉन्च कॉन्फ़िगरेशन है जो पदानुक्रम ("कोड") में उच्च निर्देशिका से काम करता है। मैंने उस कॉन्फ़िगरेशन की प्रतिलिपि बनाई और उपनिर्देशिका के लिए इसे संशोधित किया, यह अभी भी काम नहीं करता है और निर्देशिका निर्देशिका उनके बीच एकमात्र अंतर है। – Bdoserror

+0

हम्म, शायद समस्या यह है कि जो काम करता है वह एक निर्देशिका से चलता है जो मुख्य परियोजना के तहत "उप-प्रोजेक्ट" (?) है। जैसे इस सेटअप में वर्किंग कॉन्फ़िगरेशन "src/it/java" के लिए चलाता है: प्रोजेक्ट (पेड़ की जड़) 1 बच्चे, src/it/java और जिसे मैं चाहता हूं वह src/it/java का subdir है, और में मैं उन उपनिर्देशिकाओं के सामान्य अभिभावक को देखता हूं जिन्हें मैं चलाने के लिए चाहता हूं, उनके पास अपनी प्रविष्टि नहीं है। उदाहरण: परियोजना (रूट) में बच्चे के रूप में src/it/java है, और srt/it/java में 2 बच्चे, sub1.subA और sub1.subB हैं, और मैं src/it/java/sub1 से सभी परीक्षणों को चलाने के लिए चाहता हूं – Bdoserror

उत्तर

1

मुझे लगता है कि आप अपने सभी टेस्ट पैकेज को एक निर्देशिका में जोड़ सकते हैं। यदि आप इस निर्देशिका पर राइट क्लिक करते हैं, तो आपको "रन -> जुनीट टेस्ट" विकल्प उपलब्ध होना चाहिए। यह निर्देशिका में निहित सभी परीक्षण चलाएगा और जो भी आपने जोड़ा है उसे पकड़ लेंगे। उनमें से बाकी के साथ किसी भी नए परीक्षण किए जाते हैं और आपके पास जो भी पैकेज नाम है, इससे कोई फर्क नहीं पड़ता। आशा है कि मदद करता है

1

ज़रूर, संकुल आप चाहते हैं पर राइट क्लिक करें, और चुनें भागो के रूप में ... JUnit टेस्ट

+3

यह केवल एक पैकेज का चयन करते समय काम करता है। – SpaceTrucker

1

ग्रहण में, अपने डिबग पर/चलाने विन्यास आप निम्नलिखित विकल्प हैं:

  1. भागो एक एकल परीक्षण
  2. भागो चयनित परियोजना, पैकेज या स्रोत फ़ोल्डर

में सभी परीक्षणों मुझे लगता है कि दूसरा विकल्प इस मामले में अपने दोस्त है।

+14

लेकिन यह आपको विभिन्न पैकेजों से परीक्षण चलाने की अनुमति नहीं देता है –

3

मुझे यकीन है कि आप इसे थोड़ा सा कर सकते हैं। FindClasses विधि में CLASSES_DIR प्रॉपर्टी और लूप का संग्रह बनाएं। (Junit4)

http://burtbeckwith.com/blog/?p=52

+0

मैंने एनोटेशन का उपयोग करके सुझाए गए एक से अलग तरीके से इसका इस्तेमाल भी किया। यह लिंक वास्तव में उपयोगी है! – oshai

18

एक अन्य तरीका: (।, आपके ग्रहण में यहाँ नहीं :)) लाल आयत से नीचे चित्र में निरूपित किया जाता है काले त्रिकोण पर

क्लिक करें

enter image description here

फिर रन कॉन्फ़िगरेशन खोलें, एक नई कॉन्फ़िगरेशन बनाएं और फिर नीचे दी गई छवि में उदाहरण के रूप में "सभी परीक्षण चलाएं ..." सेट करें।

enter image description here

+4

केवल स्रोत (क्लासपाथ की जड़) पर यह परियोजना के सभी यूनिट परीक्षण चलाएगा। यदि किसी विशेष पैकेज पर चुना जाता है तो यह केवल चयनित पैकेज के भीतर ही परीक्षण चलाता है, लेकिन उप पैकेज से परीक्षण नहीं करता है। – Heri

22

हाँ, यह संभव है। मेरे लिए सबसे आसान तरीका कम से कम एक परीक्षण सूट वर्ग जोड़ना है।यह इस तरह से देख सकते हैं:।

package tests; 

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

import tests.message.ATest; 
import tests.validator.BTest; 
import tests.validator.CTest; 
import tests.validator.DTest; 

@RunWith(Suite.class) 
@SuiteClasses({ ATest.class, 
     BTest.class, 
     CTest.class, 
     DTest.class }) 
public class AllTests { 

} 

यह आपको किसी भी वर्ग है कि आप कोई बात नहीं क्या पैकेज में है आयात का परीक्षण करने की अनुमति देगा ग्रहण में इस चलाने के लिए आप सिर्फ सही AllTests वर्ग पर क्लिक करें और JUnit परीक्षण के रूप में चलाने के । इसके बाद आप @SuiteClasses में परिभाषित सभी परीक्षण चलाएंगे।

यह लिंक किए गए स्रोतों के साथ भी काम करेगा, मैं इसे हर समय उपयोग करता हूं।

+3

मुझे नहीं लगता कि पैकेज नाम या वाइल्डकार्ड का उपयोग '@ सुइट क्लासेस' के साथ करने का कोई तरीका है, है ना? मैंने http://johanneslink.net/projects/cpsuite.jsp, http://burtbeckwith.com/blog/?p=52, और http://stackoverflow.com/questions/1293880/run-all- परीक्षण-में-एक-स्रोत-पेड़-एक-पैकेज नहीं है लेकिन कोई भी समाधान के लिए उतना ही अच्छा नहीं है जितना कि मैंने आशा की थी। – iX3

+0

वास्तव में यकीन नहीं है, कभी कोशिश नहीं की। – span

+0

इससे मुझे एक ऐसे मुद्दे को हल करने में मदद मिली जहां 2 टेस्ट केस एक दूसरे से हस्तक्षेप कर रहे थे (अलग से वे हरे थे लेकिन अनुक्रम में निष्पादित होने पर विफल रहे)। अच्छी चाल :-) – rlegendi

9

शायद नहीं वास्तव में क्या मूल प्रश्न था, लेकिन आप आसानी से एक पूरी परियोजना के सभी परीक्षण चला सकते हैं बस परियोजना राइट-क्लिक करके -> JUnitTest के रूप में चलाएँ। चिंता न करें जहां एनोटेटेड कक्षाएं रहती हैं, यह स्कैन की जाएगी।

यह परीक्षण नहीं करता है अगर परीक्षण-src-फ़ोल्डर या उप-पैकेज वाले पैकेज पर लागू होता है। वास्तव में बहुत शर्म की बात है-.-

+3

आईएमओ यह सही जवाब है। – Heri

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