Các phương pháp hay nhất để thử nghiệm Gradle Kịch bản là gì?Hướng dẫn để Thử nghiệm Kịch bản Gradle
Tôi hiện đang kiểm tra đơn vị của mình ant tập lệnh với antunit, nhưng tôi đang tìm cách di chuyển sang Gradle. Tôi chỉ có thể tìm thấy các bài viết về kiểm tra mã Java từ Gradle hoặc Groovy, nhưng không có gì để thử nghiệm các nhiệm vụ Gradle mà tôi tạo ra hoặc thử nghiệm Groovy nói chung. Có tương đương với antunit cho Gradle không? Có ai chơi với một khuôn khổ BDD (như cucumber) để kiểm tra kịch bản Gradle?
Ví dụ, tôi hiện đang có Ant Target sau
<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>
Như bạn có thể tưởng tượng, đó là khá dễ dàng để phá vỡ này khi refactoring dự án, vì vậy tôi có những điều sau antunit thử nghiệm để kiểm tra xem nó.
<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>
được gọi bằng đoạn mã sau đây để tạo ra một báo cáo xml đẹp
<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>
Tôi hiểu làm thế nào để di chuyển dist-bin
để gradle, nhưng tôi không chắc chắn đúng cách để di chuyển test-dist-bin
là những gì và cuộc gọi au:antunit
.
Không mở rộng DefaultTask, chỉ là một nhiệm vụ Gradle cũ đồng bằng (mà Ant gọi là mục tiêu). Ví dụ được thêm ở trên. –
Tôi đã cập nhật câu trả lời của mình để hiển thị ví dụ về việc sử dụng xác nhận trong tập lệnh xây dựng của bạn –
Sigh. Cảm ơn câu trả lời và cập nhật với một ví dụ, nhưng nếu khẳng định là tất cả, thì tôi phải nói rằng tôi hơi thất vọng một chút. –