2009-07-13 11 views
8

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

क्या आप हाथ से परीक्षण ले जाते हैं?

+0

मुझे डर है कि मैं आपके प्रश्न को समझ नहीं पा रहा हूं। क्या आप कुछ और जानकारी प्रदान कर सकते हैं? इससे इस प्रश्न का उत्तर देने में मदद मिल सकती है (आपके लिए टिप्पणी करने में सक्षम होने के लिए +1) – guerda

+0

मान लीजिए कि मेरे पास पैकेज xxx में कक्षा एएए है। कक्षा का गंतव्य src/xxx/AAA.java है, और मान लीजिए कि मेरे पास परीक्षण/xxx/AAATest.java पर स्थित एक परीक्षण है, इसलिए, जब मैं क्लास एएए को पैकेज करने के लिए स्थानांतरित करता हूं, तो मेरा परीक्षण xxx पैकेज पर रहता है। – dmitrynikolaev

उत्तर

2

मैं तुम्हारे लिए 4 विकल्प हैं:!।

  1. , बाईं ओर "पैकेज" दृश्य पर जाएं दोनों फ़ाइलों का चयन करें, और तब F6 हिट यह shoul उन्हें दोनों को सही जगह पर ले जाएं।

  2. कक्षा को अस्थायी रूप से बनाएं, इससे पहले कि आप अपना रिफैक्टर करें, और बाद में स्विच करें।

  3. पहले परीक्षण को स्थानांतरित करने का प्रयास करें। मुझे याद है कि किसी भी निर्भरता को तोड़ने से बचाता है।

  4. एक प्लगइन है (मुझे लगता है कि यह toggleTest या unitTest है - मैंने दोनों को स्थापित किया था) जो मूव रिफैक्टर को पैच भी इसके साथ लाने के लिए पैच करता है। महान काम किया। दुर्भाग्यवश ऐसा लगता है कि ये नवीनतम आईडीईए के साथ काम नहीं कर सकते हैं।

0

आपके द्वारा वर्णित व्यवहार पूरी तरह से सामान्य है।

src/package1/A.java 
test/package1/ATest.java 

अपने ATest.java में एक import package1.A; नहीं है।
अपने पुनर्संशोधित के बाद, यह इस तरह दिखता है:

src/package2/A.java 
test/package1/ATest.java 

परीक्षण कोड रुके थे, जहां वह था। आपने टेस्ट कोड नहीं ले लिया, लेकिन आपका स्रोत कोड। यह किसी भी अन्य फ़ोल्डरों को प्रभावित नहीं करना चाहिए (जैसे आपके उदाहरण में)।
ATest.java में संदर्भ अब import package2.A; होना चाहिए। अन्यथा, रिफैक्टरिंग गलत हो गई।

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

आप अपने फ़ोल्डर संरचना को साफ करना चाहते हैं, तो आप मैन्युअल पैकेज test/package1test/package2 करने के लिए (मैं जानता हूँ कि, पैकेज package1 और package2 है नाम बदलने के लिए है, लेकिन मैं पर फ़ोल्डर संरचना फोकस को मजबूत करना चाहते हैं।

मुझे आशा है कि मैं आपकी मदद कर सकता है

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