Ant junit target Fails to Run with SpringJUnit4ClassRunner - and Jacoco

221 views
Skip to first unread message

gosav...@gmail.com

unread,
Jun 24, 2015, 10:23:58 AM6/24/15
to jac...@googlegroups.com
Hi ,
I need to do code coverage for my application.
If I run the test case with 'Run As - Junit' in Eclipse, test case executes successfully.

But when I am trying to run the test case using test target, it gives me exception -pasted at end.

OS - Windows7
JDK - 1.6
Ant/Hemcreast - latest jar
Jacoco/agent - latest jar

Test Class
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"/applicationContextTestJunit.xml",
"/common-context.xml",
"/com/batch/jobs/datapreparation/ODPreparationJob.xml"})
public class ODPreparationTest {

@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;

/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
System.out.println("Executing Setup....");
}

/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
System.out.println("Executing Tear down....");
}

@Test
public void testDataPreparation() throws Exception {
System.out.println("Executing Test....1");
JobExecution jobExecution = jobLauncherTestUtils.launchJob();
System.out.println("Executing Test....2");
Assert.assertEquals("COMPLETED", jobExecution.getExitStatus()
.getExitCode());
System.out.println("Executing Test....3");
}

}

Jacoco portion of build.xml
<target name="test" description="Compile test files">

<delete dir="${test.classes.dir}" />
<mkdir dir="${test.classes.dir}" />

<!-- Compile Java source -->
<javac target="1.6" srcdir="${basedir}/test" destdir="${test.classes.dir}" debug="${debug}" includeAntRuntime="no" failonerror="false">
<classpath refid="all-test-libs" />
</javac>

<copy todir="${target.classes.dir}" preservelastmodified="true" filtering="true">
<fileset dir="${resource.dir}">
<include name="**/*.*" />
</fileset>
</copy>

<copy todir="${target.meta-inf.dir}" preservelastmodified="true" filtering="true">
<fileset dir="${setup.meta-inf.dir}">
<include name="**/*.*" />
</fileset>
</copy>

<delete dir="reports" />
<mkdir dir="reports" />

<jacoco:coverage destfile="reports/jacoco.exec" exclclassloader="javassist.Loader">
<junit printsummary="yes"
haltonfailure="false" fork="yes" forkmode="once" showoutput="yes">
<formatter type="xml" />
<classpath refid="all-final-libs" />
<batchtest fork="yes" todir="reports">
<fileset dir="test">
<include name="**/*Test*.java" />
</fileset>
</batchtest>
</junit>
</jacoco:coverage>

<jacoco:report>
<!--
This task needs the collected execution data and ...
-->
<executiondata>
<file file="reports/jacoco.exec" />
</executiondata>
<!-- the class files and optional source files ... -->
<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="${test.classes.dir}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="src" />
</sourcefiles>
</structure>
<!-- to produce reports in different formats. -->
<html destdir="reports" />
<csv destfile="reports/report.csv" />
<xml destfile="reports/report.xml" />
</jacoco:report>
</target>


Exception:
Running com.batch.ODPreparationTest
[junit] Exception in thread "main" java.lang.NoClassDefFoundError: sun/reflect/GeneratedMethodAccessor4
[junit] at sun.reflect.GeneratedMethodAccessor4.<init>(Unknown Source)
[junit] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[junit] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
[junit] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
[junit] at java.lang.reflect.Constructor.newInstance(Unknown Source)
[junit] at java.lang.Class.newInstance(Unknown Source)
[junit] at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
[junit] at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
[junit] at java.security.AccessController.doPrivileged(Native Method)
[junit] at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)
[junit] at sun.reflect.MethodAccessorGenerator.generateMethod(Unknown Source)
[junit] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[junit] at java.lang.reflect.Method.invoke(Unknown Source)
[junit] at org.apache.commons.logging.LogFactory.getContextClassLoader(LogFactory.java:442)
[junit] at org.apache.commons.logging.LogFactory$1.run(LogFactory.java:222)
[junit] at java.security.AccessController.doPrivileged(Native Method)
[junit] at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:218)
[junit] at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
[junit] at org.springframework.test.annotation.ProfileValueUtils.<clinit>(ProfileValueUtils.java:40)
[junit] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.getDescription(SpringJUnit4ClassRunner.java:152)
[junit] at org.junit.runner.Runner.testCount(Runner.java:41)
[junit] at junit.framework.JUnit4TestAdapter.countTestCases(JUnit4TestAdapter.java:34)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:519)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1060)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:911)

Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages