Menu

#47 Hansel 2 & Junit 4

open
nobody
None
5
2007-02-08
2007-02-08
Anonymous
No

Trying to follow the examples with setting up Hansel 2 based JUnit 4
tests and I am not able to get the code to execute.

I have a simple test:

package com.eds.junit;

import org.hansel.CoverageRunner;

import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(CoverageRunner.class)
@Suite.SuiteClasses({ SomeTest.class })
@CoverageRunner.CoverClasses({ Some.class })
public class SomeTest
{
public SomeTest()
{
}

@Test
public void xyz()
{
Some some = new Some();
assertTrue("Test", true);
}

public static void main(String... arguments)
{
JUnitCore core = new JUnitCore();
//core.addListener(new SomeListener());
core.run(SomeTest.class);
}

}

That tests an even simpler object:

package com.eds.junit;

public class Some
{
public Some()
{
}
}

When I execute this code following the steps in the tutorial I get
errors, the code works fine without Hansel. We have looked into Hansel
1.x and got proof of concepts working with that, now since we are
switching to Java 1.5 we want to start looking at Hansel 2.

The results that I'm getting are:

D:\>java -classpath "D:\Program
Files\Oracle\JDeveloperStudio10.1.3.2\jdev\mywor
k\JUnit4Application\JUnit4Project\classes;D:\Tools\junit4.1\junit-4.1.ja
r;D:\Too
ls\hansel-2.0a3\lib\asm-all-3.0_RC1.jar;D:\Tools\hansel-2.0a3\lib\hansel
.jar" -j
avaagent:D:/Tools/hansel-2.0a3/lib/hansel.jar com.eds.junit.SomeTest
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with
message
transform method call failed at
../../../src/share/instrument/JPLISAgent.c line:
831
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with
message
transform method call failed at
../../../src/share/instrument/JPLISAgent.c line:
831
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with
message
transform method call failed at
../../../src/share/instrument/JPLISAgent.c line:
831
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with
message
transform method call failed at
../../../src/share/instrument/JPLISAgent.c line:
831
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with
message
transform method call failed at
../../../src/share/instrument/JPLISAgent.c line:
831
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with
message
transform method call failed at
../../../src/share/instrument/JPLISAgent.c line:
831

This Assertion Failed error continues on until IllegalState exceptions
start to get thrown:

java.lang.IllegalStateException: Inconsistent instrumentation: 9 != 8
at
org.hansel.HanselCodeAdapter.visitEnd(HanselCodeAdapter.java:312)
at org.objectweb.asm.tree.MethodNode.accept(Unknown Source)
at org.objectweb.asm.tree.MethodNode.accept(Unknown Source)
at org.objectweb.asm.tree.ClassNode.accept(Unknown Source)
at org.hansel.Transformer.transform(Transformer.java:47)
at sun.instrument.TransformerManager.transform(Unknown Source)
at sun.instrument.InstrumentationImpl.transform(Unknown Source)
at sun.instrument.InstrumentationImpl.redefineClasses0(Native
Method)
at sun.instrument.InstrumentationImpl.redefineClasses(Unknown
Source)
at org.hansel.Startup.init(Startup.java:97)
at org.hansel.CoverageRunner.init(CoverageRunner.java:78)
at
org.hansel.CoverageRunner.getDescription(CoverageRunner.java:116)
at
org.junit.internal.runners.CompositeRunner.getDescription(CompositeRu
nner.java:36)
at
org.junit.internal.runners.TestClassRunner.getDescription(TestClassRu
nner.java:57)
at
org.hansel.CoverageRunner.getDescription(CoverageRunner.java:119)
at
org.junit.internal.runners.CompositeRunner.getDescription(CompositeRu
nner.java:36)
at
org.junit.internal.runners.TestClassRunner.getDescription(TestClassRu
nner.java:57)
at
org.hansel.CoverageRunner.getDescription(CoverageRunner.java:119)
at
org.junit.internal.runners.CompositeRunner.getDescription(CompositeRu

This starts an infinite loop.

I'm using the latest JUnit 4 release, however I get the same results if
I use the JUnit distibution that is packaged with Hansel.

Any help would be appreciated.

Thanks,

Bob Butash (bob.butash@eds.com)

Discussion


Log in to post a comment.

MongoDB Logo MongoDB