Gradle स्क्रिप्ट्स का परीक्षण करने के लिए सर्वोत्तम प्रथाएं क्या हैं?परीक्षण ग्रैडल स्क्रिप्ट्स के लिए मार्गदर्शिका
मैं वर्तमान में स्क्रिप्ट्स antunit के साथ परीक्षण करता हूं, लेकिन मैं ग्रैडल में माइग्रेट करना चाहता हूं। मैं केवल ग्राडल या ग्रोवी से जावा कोड का परीक्षण करने के लिए लेख ढूंढ सकता हूं, लेकिन सामान्य रूप से ग्रोवी बनाने या परीक्षण करने वाले ग्रैडल कार्यों का परीक्षण करने के लिए कुछ भी नहीं। क्या ग्रैडल के लिए एंटीनीट के बराबर है? क्या किसी ने बीडीडी ढांचे के साथ खेला है (जैसे cucumber) ग्रैडल स्क्रिप्ट का परीक्षण करने के लिए?
उदाहरण के लिए, मैं वर्तमान में निम्नलिखित चींटी लक्ष्य
<target name="dist-bin" depends="build" description="creates a zip distribution of the current build">
<zip destfile="build/TIBant-bin.zip">
<zipfileset dir="src/ant" includes="**" />
<zipfileset dir="test" includes="**" prefix="test" />
<zipfileset dir="build" includes="TIBant.jar" />
<zipfileset dir="build" includes="TIBant-*.html" />
<zipfileset dir="build/examples/XMLtoProperties"
includes="XMLtoProperties.html"
prefix="examples/XMLtoProperties" />
<zipfileset dir="lib" includes="**" prefix="lib" />
<zipfileset dir="src/xslt" includes="**" excludes="test/**,userguide.xslt" prefix="lib/xslt" />
<zipfileset dir="." includes="copyright.html,LICENSE.txt" />
<zipfileset dir="examples"
includes="**"
excludes="**/build/**,**/config/default.properties"
prefix="examples" />
</zip>
</target>
आप कल्पना कर सकते हैं, यह बहुत जब परियोजना पुनर्रचना इस तोड़ने के लिए आसान है है, तो मैं इसे की जाँच करने के antunit परीक्षण निम्नलिखित है।
<target name="test-dist-bin">
<delete file="build/TIBant-bin.zip" />
<au:assertFalse message="Bin dist still present">
<available file="build/TIBant-bin.zip" />
</au:assertFalse>
<antcall target="dist-bin" />
<au:assertTrue message="Bin dist not created">
<available file="build/TIBant-bin.zip" />
</au:assertTrue>
<delete dir="build/testBinDist" />
<au:assertFalse message="TestBinDist still present">
<available file="build/testBinDist" />
</au:assertFalse>
<mkdir dir="build/testBinDist" />
<unzip src="build/TIBant-bin.zip" dest="build/testBinDist" />
<au:assertFalse message="config dir present">
<available file="build/testBinDist/config/default.properties" />
</au:assertFalse>
<au:assertTrue message="Ant Macros missing">
<available file="build/testBinDist/tibant.xml" />
</au:assertTrue>
<au:assertTrue message="Engine Stopper Jar missing">
<available file="build/testBinDist/TIBant.jar" />
</au:assertTrue>
<au:assertTrue message="Ant-contrib-missing">
<available file="build/testBinDist/lib/ant-contrib-1.0b3.jar" />
</au:assertTrue>
<au:assertTrue message="ant-unit missing">
<available file="build/testBinDist/lib/ant-antunit-1.2.jar" />
</au:assertTrue>
<au:assertTrue message="Copyright missing">
<available file="build/testBinDist/copyright.html" />
</au:assertTrue>
<au:assertTrue message="License missing">
<available file="build/testBinDist/LICENSE.txt" />
</au:assertTrue>
<au:assertFalse message="Src present">
<available file="build/testBinDist/src/java/org/windyroad/tibant/EngineStopper.jar" />
</au:assertFalse>
<au:assertTrue message="example missing">
<available file="build/testBinDist/examples/SimpleProject/src/bw/example/Build/example.archive" />
</au:assertTrue>
<au:assertFalse message="example has build files">
<available file="build/testBinDist/examples/SimpleProject/build/*" />
</au:assertFalse>
<au:assertFalse message="example has default config file">
<available file="build/testBinDist/examples/SimpleProject/config/default.properties" />
</au:assertFalse>
<property name="doc.file"
location="build/testBinDist/TIBant-User-Guide.html" />
<au:assertTrue message="doc missing: ${doc.file}">
<available file="${doc.file}" />
</au:assertTrue>
<au:assertTrue message="xslt missing">
<available file="build/testBinDist/lib/xslt/configure-ear.xslt" />
</au:assertTrue>
<subant target="run-quick-tests">
<fileset dir="build/testBinDist" includes="build.xml" />
</subant>
</target>
जो यह स्निपेट द्वारा कहा जाता है एक अच्छा एक्सएमएल रिपोर्ट
<au:antunit failonerror="@{failonerror}">
<propertyset>
<propertyref name="config.filename" />
</propertyset>
<path>
<pathelement location="@{antunit}" />
</path>
<au:plainlistener logLevel="info" />
<au:xmllistener todir="build" loglevel="info" />
</au:antunit>
मैं समझता हूँ dist-bin
माइग्रेट करने का तरीका Gradle के निर्माण करने के लिए है, लेकिन मुझे यकीन है कि क्या test-dist-bin
विस्थापित करने के लिए सही तरीका है नहीं कर रहा हूँ और au:antunit
कॉल।
कोई विस्तार DefaultTask, बस एक सादे पुराने Gradle काम (जो चींटी लक्ष्य के रूप में करने के लिए संदर्भित करता है)। उदाहरण ऊपर जोड़ा गया। –
मैंने अपनी बिल्ड स्क्रिप्ट –
Sigh में दावाों का उपयोग करने का एक उदाहरण दिखाने के लिए अपना उत्तर अपडेट किया है। एक उदाहरण के साथ उत्तर और अद्यतन के लिए धन्यवाद, लेकिन यदि सभी कहते हैं, तो मुझे कहना होगा कि मैं थोड़ा निराश हूं। –