Я использовал встроенную стеклянную рыбку следующим образом:
public static void createContainer() throws IOException {
File target = new File("target/classes");
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(EJBContainer.MODULES, target);
properties.put("org.glassfish.ejb.embedded.glassfish.installation.root",
"/opt/glassfish3/glassfish");
container = EJBContainer.createEJBContainer(properties);
context = container.getContext();
}
@AfterSuite(alwaysRun = true)
public static void closeContainer() throws NamingException {
// close container
}
// I use this method to lookup
public static <T> T lookupBy(Class<T> type) {
try {
return (T) context.lookup("java:global/classes/" + type.getSimpleName());
} catch (NamingException ex) {
throw new RuntimeException(ex);
}
}
Проблема в том, что встроенная стеклянная рыба использует классы в "target / classes", а maven cobertura использует "target / генерируемые классы / cobertura"».Затем, в первый раз, когда тесты запускаются, все в порядке, но во второй раз, когда запускается cobertura, я получаю исключение java.lang.RuntimeException: javax.naming.NamingException (вероятно, потому что cobertura работает над "target / генерируемой-классами / cobertura""пока Glassfish работает над" целью / классами ").
Есть идеи для решения этой проблемы ???