2016-10-02 23 views
6

Kotlin inline कीवर्ड के साथ चिह्नित काम करता है, अच्छी तरह से, संकलन के दौरान inlined कर रहे हैं और ऐसा लगता है कि कोड कवरेज उपकरण (जैसे JaCoCo) ठीक से कोड कवरेज की गणना करने के लिए असफल। इस मुद्दे पर काबू पाने के लिए सामान्य दृष्टिकोण क्या है? परीक्षण करने के लिए किसी भी तरह से इनलाइनिंग चरण से बचने और परीक्षण विधियों को सीधे आमंत्रित करने का कोई तरीका है? क्या सभी इनलाइन विधियों की रिपोर्ट पीढ़ी को छोड़ना संभव है (उदाहरण के लिए ग्रेड कार्य, उदाहरण के लिए) पूरे कक्षाओं को छोड़कर?कोई कवरेज रिपोर्ट

उत्तर

3

मुझे विश्वास नहीं है कि इनलाइनिंग को बंद करना संभव है क्योंकि कुछ फ़ंक्शंस इनकार नहीं किए जाने पर कोई समझ नहीं ले सकते हैं। इनमें reified प्रकारों के साथ फ़ंक्शंस शामिल हैं (चूंकि इनलाइनिंग प्रकार की जानकारी की उपलब्धता बनाता है) और लैम्बडास के साथ पैरामीटर के रूप में कार्य करता है, क्योंकि वे उस विधि के नियंत्रण प्रवाह को प्रभावित कर सकते हैं, जिसमें वे इनलाइन हैं।

+0

यही वह है जो मुझे डर था। खैर, क्या आप किसी भी उपकरण के बारे में जानते हैं जो इनलाइन फ़ंक्शंस के कोड कवरेज की सही गणना कर सकता है? मैं एक मॉड्यूल के साथ एक पुस्तकालय बनाए रख रहा हूं जिसमें ज्यादातर प्रकार के सुरक्षित बिल्डर्स शामिल हैं, और बड़े पैमाने पर यूनिट परीक्षण किए जाने पर - रिपोर्ट कोड कवरेज प्रतिशत बल्कि खराब है। – JustACluelessNewbie

0

जेटब्रेन में बग है जावा कवरेज टूल्स, https://youtrack.jetbrains.com/issue/KT-12605 देखें।

तो, बग ठीक होने तक प्रतीक्षा करें (या विकास पर गति के लिए इसे वोट दें)

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