我目前單元antunit測試我ant劇本,但我正在尋找遷移到搖籃。我只能從Gradle或Groovy中找到有關測試Java代碼的文章,但沒有詳細測試我創建或測試Groovy的Gradle任務。 Gradle有沒有相當於antunit的?有沒有人玩過BDD框架(如cucumber)來測試Gradle腳本?
舉例來說,我現在有以下Ant目標
<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>
這是由下面的代碼片段叫交出了漂亮的XML報告
<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
到搖籃,但我不知道什麼是遷移test-dist-bin
正確的方式和撥打au:antunit
。
沒有延長DefaultTask,只是一個普通的老搖籃任務(這螞蟻是指爲目標)。上面添加的例子。 –
我已經更新了我的答案顯示在您的構建腳本 –
嘆息使用斷言的一個例子。謝謝你的答案和更新舉個例子,但是如果斷言都存在,那麼我必須說我有點失望。 –