2009-06-19 28 views

Trả lời

14

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 failonerrorerrorProperty, có thể được sử dụng để có được hành vi tương tự.

1

ant-contrib có nhiệm vụ trycatch.

+0

Đá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

0

Đặt thuộc tính trong tác vụ mà bạn muốn kiểm tra lỗi, sau đó viết tác vụ thứ hai để nó thực hiện nếu thuộc tính không được đặt. Tôi không nhớ cú pháp chính xác cho build.xml, hoặc tôi muốn đưa ra các ví dụ.

6

như đã đề cập từ Kai:

ant-contrib có một nhiệm vụ trycatch.

Nhưng bạn cần phiên bản 1.0b3 gần đây. Và sau đó sử dụng

<trycatch> 
    <try> 
     ... <!-- your executions which may fail --> 
    </try> 
    <catch> 
     ... <!-- execute on failure --> 
     <throw message="xy failed" /> 
    </catch> 
</trycatch> 

Bí quyết là ném lại lỗi để biểu thị một bản dựng bị hỏng.

Các vấn đề liên quan