2011-10-07 5 views
1

Ejb3Unit에서 샘플 프로젝트를 다운로드하여 eclipse로 가져 와서 JUnit Test -> no로 실행하십시오.Ejb3Unit으로 테스트 할 수 없습니다

하지만 내 자신의 엔티티 클래스를 테스트하려고하면 항상 OutOfMemoryError가 발생합니다!

@Entity 
@Table(name = "AUTOR") 
public class Author implements Serializable { 

private int id; 
private String name;  
private Date created; 

@Id 
@GeneratedValue 
public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

@Column(name = "creation_timestamp", nullable = false) 
public Date getCreated() { 
    return created; 
} 

public void setCreated(Date created) { 
    this.created = created; 
} 
} 


public class AuthorTest extends BaseEntityFixture<Author> { 

public AuthorTest() { 
    super(Author.class); 
} 
} 

java.lang.OutOfMemoryError와 : java.lang.AbstractStringBuilder.expandCapacity (AbstractStringBuilder.java:100)에서 java.util.Arrays.copyOf (Arrays.java:2882) 에서 Java 힙 공간 에서 java.lang.AbstractStringBuilder.append (AbstractStringBuilder.java:572) at java.lang.StringBuilder.append (StringBuilder.java:203) at com.bm.datagen.utils.BaseRandomDataGenerator.getValueString (BaseRandomDataGenerator.java:109) at com.bm.datagen.random.RandomStringGenerator.getValue (RandomStringGenerator.java:45) at com.bm.datagen.random.RandomStringGenerator.getValue (RandomStringG enerator.java:20) com.bm.creators에서 com.bm.creators.EntityInstanceCreator.createInstance (EntityInstanceCreator.java:91에서 com.bm.datagen.DataGenerator.getNextValue (DataGenerator.java:127) 에서 ) . sun.reflect.NativeMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) 에서 com.bm.testsuite.BaseEntityFixture.testWrite (BaseEntityFixture.java:182) 에서 EntityBeanCreator.createBeanInstance (EntityBeanCreator.java:113) junit.framework.TestCase.runTest에서 java.lang.reflect.Method.invoke (Method.java:597)에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)에서 (NativeMethodAccessorImpl.java:39) (TestCase.java:154) 에서 org.jmock.core.VerifyingTestCase.runBare (알 수없는 소스) at junit.framework.TestResult $ 1.protect (TestResult.java:106) at junit.framework.TestResult.runProtected (TestResult.java:124) at junit.framework.TestResult.run (TestResult.java:109) junit.framework.TestCase.run (TestCase.java:118)에서 junit.framework.TestSuite.runTest (TestSuite.java:208)에서의 JUnit 에서 . framework.TestSuite.run (TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run (JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit. runner.TestExecution.run (TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:197)

속성 파일에서 일부 변경을 수행해야합니까, 아니면 다른 곳에서 문제가 있습니까?

답변

2

이클립스의 -Xmx 구성 값이 증가하면 (예 : eclipse.ini) 도움이됩니다. 자세한 내용은

은 다음을 참조하십시오

http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F

이 문제는 자동으로 당신의 엔티티 빈을 테스트 @Column(length = ...)을 변경하려고하는 데 사용하는 ejb3unit 임의의 문자열의 크기와 관련이있을 수 있습니다.

길이의 기본값은 255이며 전체적으로 많이 아닙니다.

관련 문제