Trong mục tiêu junit của bạn, ví dụ, bạn có thể thiết lập failureProperty
:
<target name="junit" depends="compile-tests" description="Runs JUnit tests">
<mkdir dir="${junit.report}"/>
<junit printsummary="true" failureProperty="test.failed">
<classpath refid="test.classpath"/>
<formatter type="xml"/>
<test name="${test.class}" todir="${junit.report}" if="test.class"/>
<batchtest fork="true" todir="${junit.report}" unless="test.class">
<fileset dir="${test.src.dir}">
<include name="**/*Test.java"/>
<exclude name="**/AllTests.java"/>
</fileset>
</batchtest>
</junit>
</target>
Sau đó, tạo một mục tiêu đó chỉ chạy nếu tài sản test.failed
được thiết lập, nhưng thất bại ở cuối:
<target name="otherStuff" if="test.failed">
<echo message="I'm here. Now what?"/>
<fail message="JUnit test or tests failed."/>
</target>
Cuối cùng, buộc chúng lại với nhau:
<target name="test" depends="junit,otherStuff"/>
Sau đó, chỉ cần gọi mục tiêu test
để chạy các bài kiểm tra JUnit của bạn. Mục tiêu junit
sẽ chạy. Nếu không thành công (thất bại hoặc lỗi), thuộc tính test.failed
sẽ được đặt và phần thân của mục tiêu otherStuff
sẽ thực thi.
Nhiệm vụ javac hỗ trợ các thuộc tính failonerror
và errorProperty
, có thể được sử dụng để có được hành vi tương tự.
Đáng buồn là điều đó sẽ không hoạt động, vì tôi vẫn muốn bản dựng không thành công. – tomjen