Ant+JUnit não tá rolando

Estou tentando fazer o Ant executar os testes unitários e não rola. A classe de teste se parece com a seguinte:

[code]package a.b.c;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class AlgoTest extends TestCase {

  public AlgoTest(String testName) {
        super(testName);
  }

  public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTest(new AlgoTest("testAlgo1"));
        suite.addTest(new AlgoTest("testAlgo2"));
        return suite;
  }

  public void testAlgo1() {
        // algo para testar 1...
  }

  public void testAlgo2() {
        // algo para testar 3...
  }

}[/code]

A target Ant fiz assim:

[code] …
<target name=“junit” depends=“compile-tests”>
<junit printsummary=“on”
fork=“false”
haltonfailure=“false”
failureproperty=“tests.failed”
showoutput=“true”>
<formatter type=“plain” usefile=“false”/>
<batchtest>
<fileset dir="${build}">
<include name="**/*Test.class"/>
</fileset>
</batchtest>

      &lt;/junit&gt;

      &lt;fail if="tests.failed"&gt;
      ***
      OS TESTES FALHARAM!
      ***
      &lt;/fail&gt;
  &lt;/target&gt;

…[/code]

Se eu executo a classe diretamente com java a.b.c.AlgoTest rola direitinho (claro que eu coloco um método main() chamando a suite de testes com o TestRunner).

Alguém pode me ajudar?

O erro que dá é o seguinte:

[code][junit] Running a.b.c.AlgoTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Testsuite: a.b.c.AlgoTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec

[junit] Null Test Caused an ERROR
[junit] a.b.c.AlgoTest
[junit] java.lang.ClassNotFoundException: a.b.c.AlgoTest
[junit] at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
[junit] at java.security.AccessController.doPrivileged(Native Method)
[junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
[junit] TEST a.b.c.AlgoTest FAILED
[junit] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Class.java:141)
[/code]

Acho que você tem que indicar o diretório das classes no classpath do seu build.xml.

Hmmm é isso mesmo! Rolou.
É que o projeto é um grupinho de classes utilitárias e simplesmente não dependendia de lib nenhuma. Então eu criei um:

&lt;path id="master-classpath"&gt; &lt;pathelement path="${build}"/&gt; &lt;/path&gt;

E fiz referencia à ele dentro da task junit com <classpath refid=“master-classpath”/>. Daí rolou redondo.

Valeu, Daniel. :slight_smile: