Запустите все модульные тесты с Ant Builder - PullRequest
5 голосов
/ 21 января 2011

У меня есть каталог с кучей тестов JUnit в моем проекте. До сих пор я использовал отдельную цель для каждого модульного теста. Например:

   <target name="MyTest">
        <mkdir dir="${junit.output.dir}"/>
        <junit fork="yes" printsummary="withOutAndErr">
            <formatter type="xml"/>
            <test name="tests.MyTest" todir="${junit.output.dir}"/>
            <classpath refid="MyProject.classpath"/>
        </junit>
    </target>

Этот метод требует, чтобы я менял файл сборки каждый раз, когда добавляю модульный тест.
Я хочу иметь возможность запускать все модульные тесты в проекте с одной целью Ant Builder.
Можно ли это сделать?

Ответы [ 2 ]

9 голосов
/ 21 января 2011

Да, вам нужно взглянуть на тег набора файлов, например:

<junit printsummary="yes" haltonfailure="yes">
  <classpath>
    <pathelement location="${build.tests}"/>
    <pathelement path="${MyProject.classpath}"/>
  </classpath>

  <formatter type="xml"/>

  <batchtest fork="yes" todir="${reports.tests}">
    <fileset dir="${src.tests}">
      <include name="**/*Test*.java"/>
      <exclude name="**/AllTests.java"/>
    </fileset>
  </batchtest>
</junit>

Важной частью является использование набора файлов и шаблона с подстановочными знаками / подстановочными знаками для соответствия именам тестов.Полные документы по задаче junit с примерами здесь:

http://ant.apache.org/manual/Tasks/junit.html

3 голосов
/ 21 января 2011

Да!Мы делаем это, используя команду Ant Batchtest.Похоже на это:

        <batchtest todir="${junit.report.dir}">
            <fileset dir="${basedir}\test\unit">
                <include name="**/*Test.java" />
            </fileset>
        </batchtest>

Google это, он должен разобраться

...