You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Mi...@nuernberger.de on 2006/09/05 16:38:01 UTC

.JUnit41 support in Ant 1.7 Beta

Hi,

I have some problems in testing java classes with Junit 4.1 and Ant 1.7 Beta.

The classes to be tested are Singletons written with AspectJ and Java 1.5. The test-classes are pure Junit 4 tests with anotations and without JUnit4TestAdapter.

If I run the ant script I get the exception: "No runnable methods".
But if I run the ant script with the attribute fork="yes" the junit testcase can be executed and I get an "AssertionFailedError".

Can anyone help me finding out, how to start the ant script without VM-forking (attribute fork="yes").


Here is the junit task of my ant-script:

<junit printsummary="on" haltonerror="off"  >
	<formatter type="xml" />
	<classpath>
	 <pathelement path="${classes.dir}" />
		<pathelement path="${test.classes.dir}" />
		<pathelement path="${ant.home}/lib/" />
	</classpath>
	<classpath refid="project.classpath" />

	<batchtest fork="no" todir="${test.report.dir}" >
		<fileset dir="${test.source.dir}">
			<include name="**/*Test*.java" />
			<exclude name="**/*Mock*.java" />
		</fileset>
	</batchtest>
</junit>


Here is the test-case:

public class SingletonTest
{
  @Test 
  public void createSingleton()
  {
    TestMock1 s1 = new TestMock1();
    TestMock1 s2 = new TestMock1();
    
    assertEquals(s1, s2);
    assertTrue(s1.getInvocationTime() == s2.getInvocationTime());
    
    TestMock2 s3 = new TestMock2();
    TestMock2 s4 = new TestMock2();
    
    assertEquals(s3, s4);
    assertTrue(s3.getInvocationTime() == s4.getInvocationTime());
    assertNotSame(s1, s3);
  }
}

and one mock object representatively for the others:

@Singleton
public class TestMock1
{
  protected Long invocationTime = System.currentTimeMillis();
  
  /**
   * Rückgabe der Instanziierungszeit
   * @return long - Timestamp
   */
  public Long getInvocationTime()
  {
    return invocationTime; 
  }

---
Regards
Mirko





Hinweis:
Der Inhalt dieser E-Mail ist ausschließlich für den bezeichneten Empfänger bestimmt und kann vertrauliche Informationen enthalten. Wenn Sie nicht der Empfänger dieser E-Mail oder dessen Vertreter sind, dann senden Sie bitte die E-Mail an den Absender zurück (Antwort-Funktion bzw. reply email). Entfernen Sie bitte danach die Nachricht aus Ihrem System.
This e-mail message including any attachments may contain privileged or confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, please immediately return this e-mail message to the sender by reply e-mail, delete the original message and destroy all copies thereof.
MSW 5.1