En la configuración CCNet, en el proyecto, en la parte superior del bloque de tareas:
<modificationWriter>
<filename>svn_mods.xml</filename>
<path>c:\modsdir</path>
</modificationWriter>
Esto escribirá las modificaciones SVN a un archivo.
siguiente en el bloque de tareas:
<nant>
<executable>c:\path_to_nant</executable>
<buildFile>mybuildfile.build</buildFile>
<targetList>
<target>conditionally_run_nunit_tests</target>
</targetList>
</nant>
Esto ejecutará una tarea después de la tarea Nant modificationwriter.
En conditionally_run_nunit_tests, busque el archivo de c: \ modsdir \ svn_mods.xml para #runautotest.Si lo encuentras, ejecuta las pruebas. Si no lo encuentras, no hagas nada. Hay varias formas de analizar el archivo de modificaciones. Podría usar la secuencia de comandos C# para leer todo el archivo en una cadena y luego llamar a Contiene pasando en #runautotest.
El siguiente código es un ejemplo del uso de la secuencia de comandos C# en Nant. SearchFile abre un archivo, lo lee en una cadena y comprueba si hay un valor en la cadena. Devuelve "sí" o "no". La siguiente secuencia de comandos no ha sido probada.
<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>
+1 para la respuesta muy completa. – TridenT
Gracias !!!!!!!!!!! –