मैं अपने मौजूदा चींटी निर्माण स्क्रिप्ट के भीतर हमारे जावा वेब अनुप्रयोग कोड अंधेरा करने के लिए देख रहा हूँ, लेकिन इकाई परीक्षण के आसपास समस्याओं में चल रहा हूँ। मैं संकलित होने के ठीक बाद कोड को खराब कर रहा हूं, इससे पहले कि यह जार-एड है और यूनिट परीक्षण चलाने से पहले।क्या आप यूनिट टेस्ट ओबस्कस्केटेड कोड कर सकते हैं?
हालांकि, अगर मैं अपने उत्पादन कोड को रोकता हूं और मेरा टेस्ट कोड नहीं करता हूं, तो मेरे सभी परीक्षण विफल हो जाते हैं क्योंकि वे उन विधियों को कॉल करने का प्रयास कर रहे हैं जो अब मौजूद नहीं हैं क्योंकि उनका नाम बदलकर ओबफ्यूसेटर द्वारा किया गया है। मैं कुछ तरीकों को चिह्नित इतना अस्पष्ट कर करने के लिए वे इस तरह के हमारे परीक्षण सुइट के रूप में बाहरी सिस्टम द्वारा इस्तेमाल किया जा सकता कर सकते हैं, लेकिन हम उच्च इकाई परीक्षण कवरेज के लिए शूटिंग कर रहे हैं क्योंकि हम सभी अन-obfuscatable के रूप में हमारे विधियों में से चिह्नित करने के लिए की आवश्यकता होगी।
1:
अगर मैं रूप में अच्छी तरह परीक्षण कक्षाओं अंधेरा करना, मैं दो समस्याएं आ उत्पादन वर्गों और परीक्षण कक्षाएं एक ही आउटपुट निर्देशिका में विलय हो और मैं से परीक्षण वर्गों को बाहर करने में असमर्थ हूँ उत्पादन .jar फ़ाइलें
2: मैं अपने सामान्य चींटी batchtest कॉल नहीं चल सकता:
<batchtest todir="${basedir}/reports">
<fileset dir="${basedir}/components/common/build-zkm">
<include name="**/*Test.class"/>
</fileset>
</batchtest>
क्योंकि अस्पष्टकर्ता परीक्षण के नाम बदल गया है।
मैं परिणामस्वरूप .war/.ear फ़ाइलों पर केवल obfuscator चला सकता हूं, लेकिन मैं obfuscator के कारण किसी भी बग को चलाने के लिए संशोधित कोड के खिलाफ हमारे यूनिट परीक्षण चलाने के लिए चाहता हूं।
मैं वर्तमान में Zelix KlassMaster साथ काम कर रहा हूँ, लेकिन मैं मूल्यांकन चरण में अभी भी कर रहा हूँ तो मैं अन्य विकल्पों के लिए खुला हो सकता है अगर वे बेहतर काम करेगा।
मुझे क्लासमास्टर में "बहिष्कृत * * * टेस्ट;" जोड़कर ऐसा करने का कोई तरीका मिला। मेरी लिपि में और अब वे दौड़ते हैं। चूंकि मुझे अभी भी obfuscator के माध्यम से परीक्षण चलाने के लिए है, वे अभी भी आउटपुट निर्देशिका में उत्पादन कक्षाओं के साथ मिश्रित अंत कर रहे हैं। मैं उस –