제 질문은 Ant 빌드 파일에 테스트가 끝나고 스스로 정리할 수있는 부분이없는 것입니다. 세부 사항은 아래와 같습니다.내 JUnit 테스트는 Eclipse에서 실행될 때 작동하지만 Ant를 통해 무작위로 실패하는 경우
Eclipse를 통해 실행할 때 항상 통과하는 테스트 세트가 있지만 Ant 빌드를 사용하여 실행하면 때때로 통과하거나 실패합니다. 테스트에서는 JOCL을 통해 openCL을 사용하므로 GPU에서 메모리가 제한되어 있으므로 올바르게 관리해야합니다. 내 출력에서 때때로 내 Ant 빌드를 실행할 때 얻을 수 있습니다.
[junit] Caused an ERROR
[junit] CL_MEM_OBJECT_ALLOCATION_FAILURE
[junit] org.jocl.CLException: CL_MEM_OBJECT_ALLOCATION_FAILURE
문제는 테스트 자체 일 수 없습니다. 내 기억이 가장 배가 고픈 테스트가 스위트 끝에서 시작되었다고 생각합니다. 이 마지막 테스트가 호출 될 때, 어떻게 든 GPU는 이전 테스트의 나쁜 상태로 남습니다. 이클립스를 통해 테스트를 실행할 때 이것은 발생하지 않습니다. 배가 고프린 메모리 테스트를 스위트에서 첫 번째 테스트로 만들면 앤트 빌드에서 실패한 적이 없습니다. 이것은 친숙한 사건입니까? Eclipse를 통해 테스트를 실행하는 것이 항상 효과가있는 이유는 무엇입니까? 내가 시도할만한 것이 있습니까? 여기
내 Ant 빌드에서 테스트 대상 :<target name="test" if="testing.enabled">
<mkdir dir="${test.bin.dir}" />
<javac srcdir="test" destdir="${test.bin.dir}" debug="true" classpathref="testclasspath" source="1.6"/>
<junit haltonerror="true" haltonfailure="true">
<classpath refid="testclasspath"/>
<formatter type="plain" usefile="false" />
<batchtest>
<fileset dir="test">
<include name="*Test.java"/>
</fileset>
</batchtest>
</junit>
</target>
이 문제는 해결되지 않습니다. 나는 그것을 시도했지만, 256mb와 같은 적은 양의 메모리에서 메모리 공간 유형 오류로 인해 Java 힙이 발생했다. 메모리를 512MB 또는 1024MB로 늘리면 GPU에서 발생하는 메모리 할당 오류가 발생했습니다. 내 문제는 JUnit이 하나의 개별 JUnit 테스트의 실제 메모리 사용이 아니라 스위트 내에서 JUnit 테스트를 닫고 열어가는 방식에 있다고 생각합니다. Ant 빌드에서는 각 테스트가 자체적으로 실행되는 경우 항상 통과합니다. – smuggledPancakes
다른 방법으로 문제가 발생할 수 있습니까? 나는. 웬일인지 테스트는 가비지 콜렉션에 달려 있으며 Eclipse GC에서는 발생하지만 개미에서는 발생하지 않습니다 –
왜 이런 일이 발생했는지에 대한 아이디어가 있습니까? 나는 또한 내가 물건을 어슬렁 거리게하지 않을 것이라고 확신한다. 내 JUnit 테스트에는 전역 필드가 사용되지 않고 테스트가 끝나면 모든 것이 범위를 벗어납니다. 나는 gc와 클린업과 관련이 있을지도 모르는 개미 설정을 위해 인터넷 검색을 시도했지만 여전히 붙어있다. – smuggledPancakes