Eclipse에서 실행되는 단위 테스트 스위트가 있습니다. 모든 것이 정상적으로 작동합니다. 이들은 20MB보다 큰> 파일에서로드 된 데이터에 의존합니다. 그러나 ANT에서 단위 테스트를 실행하면 일부 데이터가로드되지 않아 테스트가 실패합니다. 무엇 발생하면 전체 파일을 읽지 않습니다 내 파일 읽기 메커니즘입니다, 그냥이의 일부입니다 내 파일이 코드ANT를 통해 실행 중일 때 파일이 올바르게 읽히지 않는 이유
private static void initializeListWithFileContents(
TreeMap<String, List<String>> treeMap, String fileName)
{
File file = new File(fileName);
Scanner scanner = null;
int count = 0;
try
{
scanner = new Scanner(file);
while (scanner.hasNextLine())
{
String line = scanner.nextLine().toLowerCase().trim();
String[] tokens = line.split(" ");
if (tokens.length == 3)
{
String key = tokens[0] + tokens[1];
if (treeMap.containsKey(key))
{
List<String> list = treeMap.get(key);
list.add(tokens[2]);
}
else
{
List<String> list = new ArrayList<String>();
list.add(tokens[2]);
treeMap.put(key, list);
}
count++;
}
}
scanner.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
System.out.println(count + " rows added");
}
을 읽고 약 10,000 900,000 라인 여기
을 읽은 후 오류를 부여하지 않고, 정지 웹 앱. 웹 응용 프로그램도 잘 작동하며 전체 파일이 메모리에로드됩니다. 단위 테스트가 의존하는 데이터가 첫 번째 10,000 줄에 포함되면 단위 테스트는 ANT로 성공합니다. 내가 생각할 수있는 유일한 점은 메모리 문제 여야하지만 왜 예외가 발생하지 않는지입니다. Eclipse 내에서 ANT 대상을 실행합니다. 이클립스 JUnit 러너와 동일한 JVM 인수로 구성됩니다 (예 : -Xms512m -Xmx1234m). ANT가 기본 JVM 매개 변수로 시작하면 힙 오류로 인해 실패하므로 올바르게 선택한다는 것을 알고 있습니다. 내가 확인할 수있는 다른 아이디어가 있습니까?
@ McDowell, 스캐너를 끄집어 냈습니다. 파일을 읽을 때 일부 오류가 발생했습니다. 정확히 같은 JVM을 사용하고있는 모든 경우처럼 ANT에서 문제가 발생하는 이유는 확실하지 않습니다. 즉, Eclipse, Tomcat 및 ANT – MayoMan