Я понимаю ваш вопрос, так как вы хотите запускать тесты Junit только на другой машине, фактически не опираясь на нее?Вы можете запустить что-то в строках ниже как сценарии сборки из Cruise control и, возможно, тоже из Hudson
Если вы используете задачу через ant, следуйте тем же принципам, что и стандартная сборка.Вы можете получить код для всех целевых машин из системы управления версиями.
Вывести все корневые каталоги в файл build.properties.Это свойства, которые должны быть установлены на каждой машине следующим образом.
#Overall Project Name
project.name=myapp
# Top Level Root directory of the new working project
toplevel.project.dir=D:/proj/eComm
# Root directory of the source code
root.project.dir=D:/proj/eComm/Construction
# JDK home directory
jdk.home=C:/jdk1.5.0_11
build.properties также будет иметь некоторые статические свойства, определенные относительно вышеупомянутых.Они не должны быть изменены любым пользователем на любом локальном компьютере.
ear.dist.dir = ${root.project.dir}/target
src.dir = ${root.project.dir}/src
test.src.dir = ${root.project.dir}/test
Убедитесь, что ваш build.xml ссылается только на любые дополнительные подкаталоги через эти свойства без каких-либо жестко закодированных значений в нем.Мой junit находится в отдельном файле, который импортируется в build.xml
<import file="${root.project.dir.buildscripts.dir}/junit.xml"/>
, и некоторая часть junit.xml показана ниже
<target name="run.junit" depends="clean.junit, junit.info, prepare.junit"
description="Compiles and runs all JUnit Tests in the 'test' directory and produces a report of all failures">
<junit printsummary="yes" fork="true" haltonfailure="no" showoutput="yes" maxmemory="512m">
<jvmarg line="${junit.jvm.arg}"/>
<classpath>
<fileset dir="${src.dir}">
<include name="**/*.*"/>
</fileset>
<fileset dir="${ear.dist.dir}/build/classes">
<include name="**/*.*"/>
</fileset>
<pathelement path="${test.run.path}"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="true" todir="${ear.dist.dir}/build/junit">
<fileset dir="${test.src.dir}" includes="${test.pattern.include}"/>
</batchtest>
</junit>
</target>