我使用嵌入的glassfish以下列方式:Glassfish的嵌入式+行家的Cobertura插件
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);
}
}
的問題是,嵌入式GlassFish使用的類中的「目標/類」和行家的Cobertura使用「目標/生成 - 班/的Cobertura」。然後,第一次運行測試就沒事了,但第二次運行cobertura時,我收到一個java.lang.RuntimeException:javax.naming.NamingException(可能是因爲cobertura正在處理「target/generated-classes/cobertura 「而玻璃魚正在研究」目標/課程「)。
任何想法來解決這個問題?