2012-08-22 6 views
5

पास हो, मैं एक grails आवेदन पर काम कर रहा हूं। हम कोड कवरेज रिपोर्ट जेनरेट करने के लिए कोबर्टुरा का उपयोग करते हैं। अब मैं grails प्रोजेक्ट को संशोधित करना चाहता हूं जैसे कि कोड कवरेज कम से कम 90% होने पर निर्माण विफल होना चाहिए। मैं इसे grails में कैसे प्राप्त कर सकता हूं?बिल्डिंग ग्रिल परियोजना सफलतापूर्वक केवल तभी कवर करें जब कवरेज चेक

उत्तर

4

मुझे नहीं लगता कि कोड-कवरेज प्लगइन सीधे इसका समर्थन करता है, लेकिन शक्तिशाली grails में घटनाओं के बुनियादी ढांचे के निर्माण में यह आसान है। अपने scripts/_Events.groovy में इस रखने से, निर्माण असफल हो जायेगी कवरेज एक निश्चित सीमा से नीचे है अगर:

eventStatusFinal = { message -> 
    if (message ==~ /.*Cobertura Code Coverage Complete.*/) { 
    def report = new XmlSlurper().parse(new File("target/test-reports/cobertura/coverage.xml")) 
    if (Float.parseFloat(report.'@line-rate'.text()) < 0.90) { 
     throw new RuntimeException("coverage too low!") 
    } 
    } 
} 

यह grails-app/conf/BuildConfig.groovy में इस के साथ एक्सएमएल रिपोर्ट पीढ़ी को चालू करने की आवश्यकता है:

coverage { 
    xml = true 
} 

समायोजित करें विशेषता (line-rate, branch-rate) और आवश्यकतानुसार मूल्य।

+0

प्रतिक्रिया के लिए धन्यवाद। आज इसका परीक्षण करेंगे और आपको बताएंगे। – Npa

+0

क्या हमें इस घटना को कॉल करने की आवश्यकता है कहीं से भी बंद करें। मेरे पास परियोजना में स्थापित cobertura प्लगइन है। यह मेरे लिए कोड कवरेज रिपोर्ट तैयार कर रहा है। सुनिश्चित नहीं है कि इस बंद करने के लिए 'संदेश' कैसे भेजा जाएगा? – Npa

+0

नहीं, जब स्थितिफलक घटना होती है तो grails build system इसे कॉल करता है। कोड-कवरेज प्लगइन घटना को तब तक चलाता है जब उसने अपनी रिपोर्ट लिख ली है। – ataylor

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