Pessoal,
Tenho um projeto desenvolvido com Jboss Seam. Fiz a integracao dele com o JUNIT para rodar minhas classes de teste. Ate ai tudo bem, mas quando eu tento rodar as classes Junit com o Ant da o seguinte erro:
Testsuite: br.gov.cgu.projeto.test.DownloadFileTest
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
Caused an ERROR
org/jboss/seam/mock/AbstractSeamTest
java.lang.NoClassDefFoundError: org/jboss/seam/mock/AbstractSeamTest
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.jboss.seam.mock.AbstractSeamTest
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Build.xml:
</classpath>
<batchtest fork="true" todir="${test.report.dir}" >
<fileset dir="C:/tools/eclipse/workspace/Projeto/bin">
<include name="**/*Test.*" />
</fileset>
</batchtest>
</junit>
<junitreport todir="C:/tools/eclipse/workspace/Projeto/tmp/junitreports">
<fileset dir="C:/tools/eclipse/workspace/Projeto/tmp/junitreports"/>
<report todir="C:/tools/eclipse/workspace/Projeto/tmp/junitreports"/>
</junitreport>
Classes de teste:
Essa que faz a integracao JBoss co Junit:
package br.gov.cgu.proetica.test;
import org.jboss.seam.mock.AbstractSeamTest;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
public class JUnitSeamTest extends AbstractSeamTest {
// static helper instance to call non static methods in
// a static method
private static JUnitSeamTest seamTest = new JUnitSeamTest();
private static boolean batch = false;
/*
* JUnit test life cycle methods.
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
if (!batch) seamTest.startContainer();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
if (!batch) seamTest.stopContainer();
}
@Before
public void setUp() throws Exception {
setupClass();
begin();
}
@After
public void tearDown() throws Exception {
end();
cleanupClass();
}
/*
* Helper methods
*/
// starts the JBoss embedded ejb container
public void startContainer() throws Exception {
super.startSeam();
}
// stops the JBoss embedded ejb container
public void stopContainer() throws Exception {
super.stopSeam();
}
public boolean isBatch() {
return batch;
}
// used by a JUnit.Suite runner to set the batch flag
public void setBatch(boolean fBatch) {
batch = fBatch;
}
}
Classe de teste do meu projeto:
import junit.framework.Assert;
import org.jboss.seam.mock.AbstractSeamTest.FacesRequest;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import br.gov.cgu.projeto.session.DownloadFile;
public class DownloadFileTest extends JUnitSeamTest{
@Test
public void downloadArquivoResposta() throws Exception {
new FacesRequest("/novoRepresentante.xhtml") {
protected void testComponents() {
Assert.assertNotNull(getInstance("downloadFile"));
DownloadFile downloadFile = (DownloadFile) getInstance("downloadFile");
Assert.assertEquals(null, downloadFile.downloadArquivoResposta());
}
}.run();
}
Eu sei que ele nao esta encontrando a classe AbstractSeamTest, ela nao eh uma classe minha e sim uma classe do Seam, e o Ant nao a encontra. Alguem sabe o que fazer?