Trong cấu hình ccnet, trong dự án, ở phía trên cùng của khối nhiệm vụ:
<modificationWriter>
<filename>svn_mods.xml</filename>
<path>c:\modsdir</path>
</modificationWriter>
này sẽ viết những sửa đổi SVN vào một tập tin.
Tiếp theo trong khối công việc:
<nant>
<executable>c:\path_to_nant</executable>
<buildFile>mybuildfile.build</buildFile>
<targetList>
<target>conditionally_run_nunit_tests</target>
</targetList>
</nant>
này sẽ chạy một nhiệm vụ Nant sau khi nhiệm vụ modificationwriter.
Trong conditionally_run_nunit_tests, tìm file c: \ modsdir \ svn_mods.xml cho #runautotest.Nếu bạn tìm thấy nó, hãy chạy thử nghiệm. Nếu bạn không tìm thấy nó thì không làm gì cả. Có nhiều cách khác nhau để phân tích cú pháp tệp mod. Bạn có thể sử dụng C# script để đọc toàn bộ tập tin vào một chuỗi và sau đó gọi Chứa đi qua trong #runautotest.
Đoạn mã dưới đây là ví dụ về cách sử dụng tập lệnh C# ở Nant. SearchFile mở một tệp, đọc nó thành một chuỗi và kiểm tra xem một giá trị có nằm trong chuỗi không. Nó trả về "có" hoặc "không". Tập lệnh dưới đây chưa được kiểm tra.
<property name="yesno" value="${ns::SearchFile("c:\modsdir\svn_mods.xml", "#runautotest")}"/>
<script language="c#" prefix="ns">
<references>
<include name="System"/>
<include name="System.IO"/>
</references>
<code>
<![CDATA[
[Function("SearchFile")]
public static string SearchFile(string filepath, string token)
{
System.IO.StreamReader myFile = new System.IO.StreamReader(filepath);
string myString = myFile.ReadToEnd();
myFile.Close();
if(myString.Contains(token)) return "yes";
else return "no";
}
]]>
</code>
</script>
Nguồn
2012-05-02 19:04:53
+1 cho câu trả lời hoàn chỉnh. – TridenT
Thanx !!!!!!!!!!! –