2009-08-16 6 views

Antwort

0

Sie können den rohen Klassenpfad für das Projekt abrufen und dann jeden Junit-Eintrag anhand seiner Art und seines Pfades finden. Wenn sie sich in der "falschen Reihenfolge" befinden, können Sie den rohen Klassenpfad ändern und den geänderten Pfad festlegen zu dem Projekt.

Das Snippet unten skizziert, wie es getan werden kann, beachten Sie in diesem Beispiel keine Ausnahmebehandlung gibt es:

//get the project by name, you probably want to use another method to 
//obtain it 
IProject project = ResourcesPlugin.getWorkspace().getRoot() 
     .getProject("foo"); 
IJavaProject javaProject = JavaCore.create(project); 

IClasspathEntry[] entries = javaProject.getRawClasspath(); 

// find the JUnit 3 and Junit 4 entry index 
int junit3Index = -1; 
int junit4Index = -1; 
for (int i = 0; i < entries.length; i++) { 
    if (entries[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER) { 
     if (entries[i].getPath().equals(
       JUnitContainerInitializer.JUNIT3_PATH)) { 
      junit3Index = i; 
     } else if (entries[i].getPath().equals(
       JUnitContainerInitializer.JUNIT4_PATH)) { 
      junit4Index = i; 
     } 
    } 
} 

if (junit3Index != -1 && junit4Index != -1 
     && junit3Index > junit4Index) { 
    // swap the two entries 
    IClasspathEntry temp = entries[junit4Index]; 
    entries[junit4Index] = entries[junit3Index]; 
    entries[junit3Index] = temp; 

    //update the project with the modified path 
    javaProject.setRawClasspath(entries, new NullProgressMonitor()); 
} 
Verwandte Themen