Ingredientes
Preparación
Instalamos Watchr en nuestro sistema (es necesario disponer de Ruby en nuestra cocina para preparar esta receta):
$ gem install watchr
Preparamos un fichero de configuración de Watchr (watchr.conf) y reservamos:
watch( 'src/(.*)\.java' ) do |md| file = "#{md[1]}Test" test(file) if File.exists?("test/#{file}.java") end watch( 'test/(.*Test)\.java' ) { |md| test(md[1]) } def test(file) system("ant -Dtest=#{file.gsub("/",".")} test-file") end
Es importante elegir los sabores adecuados de expresiones regulares para que Watchr vigile tanto el código fuente como, los ficheros de test.
Después creamos una tarea Ant que testea una clase indicada mediante párametro:
$ ant -Dtest=mi.paquete.MiClase test-file
Sazonamos la tarea al gusto. El chef recomienda:
<target name="test-file" depends="test-compile"> <junit> <classpath refid="project.classpath.test"/> <formatter type="brief" usefile="false"/> <test name="${test}"/> </junit> </target>
Mezclamos todo y emplatamos:
$ watchr watchr.conf
Algunos chefs, prefieren presentar el plato usando Ant:
<target name="autotest"> <exec command="watchr"> <arg value="watchr.conf"/> </exec> </target>
Esto último es opcional, sólo para aquellos cocineros que quieran manejar todo lo relativo a su proyecto con Ant.