Nella configurazione CCNet, nel progetto, nella parte superiore del blocco di compiti:
<modificationWriter>
<filename>svn_mods.xml</filename>
<path>c:\modsdir</path>
</modificationWriter>
Questo scriverà le modifiche SVN a un file.
successivo nel blocco di compiti:
<nant>
<executable>c:\path_to_nant</executable>
<buildFile>mybuildfile.build</buildFile>
<targetList>
<target>conditionally_run_nunit_tests</target>
</targetList>
</nant>
Questo farà eseguire un compito Nant dopo l'operazione modificationwriter.
In conditionally_run_nunit_tests, cercare il file c: \ modsdir \ svn_mods.xml per #runautotest.Se lo trovi, esegui i test. Se non lo trovi, allora non fare nulla. Esistono vari modi per analizzare il file mods. È possibile utilizzare lo script C# per leggere l'intero file in una stringa e quindi chiamare Contains passando in #runautotest.
Il seguente codice è un esempio di utilizzo di script C# in Nant. SearchFile apre un file, lo legge in una stringa e controlla se un valore è nella stringa. Restituisce "sì" o "no". Lo script seguente non è stato testato.
<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>
fonte
2012-05-02 19:04:53
+1 per la risposta molto completa. – TridenT
Grazie !!!!!!!!!!! –