mopemope / meghanada-emacs

A Better Java Development Environment for Emacs
GNU General Public License v3.0
603 stars 56 forks source link

Unable To Run Unit Tests #148

Open tekktonic opened 5 years ago

tekktonic commented 5 years ago

Lately whenever I try to run a junit test from meghanada it fails before running with this exception:

Exception in thread "main" java.lang.NoSuchMethodError: ch.qos.logback.core.util.Loader.getResources(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
    at ch.qos.logback.classic.util.ContextInitializer.multiplicityWarning(ContextInitializer.java:183)
    at ch.qos.logback.classic.util.ContextInitializer.statusOnResourceSearch(ContextInitializer.java:175)
    at ch.qos.logback.classic.util.ContextInitializer.getResource(ContextInitializer.java:141)
    at ch.qos.logback.classic.util.ContextInitializer.findURLOfDefaultConfigurationFile(ContextInitializer.java:125)
    at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148)
    at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
    at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
    at jetbrains.exodus.core.execution.DefaultExceptionHandler.<clinit>(DefaultExceptionHandler.java:24)
    at jetbrains.exodus.core.execution.ThreadJobProcessorPool.getOrCreateJobProcessor(ThreadJobProcessorPool.java:74)
    at jetbrains.exodus.core.execution.SharedTimer.<clinit>(SharedTimer.java:36)
    at jetbrains.exodus.core.dataStructures.CacheHitRateable.<init>(CacheHitRateable.java:35)
    at jetbrains.exodus.core.dataStructures.ObjectCacheBase.<init>(ObjectCacheBase.java:40)
    at jetbrains.exodus.core.dataStructures.ConcurrentObjectCache.<init>(ConcurrentObjectCache.java:42)
    at jetbrains.exodus.util.StringInterner.<init>(StringInterner.kt:26)
    at jetbrains.exodus.util.StringInterner.<init>(StringInterner.kt:21)
    at jetbrains.exodus.util.StringInterner.<clinit>(StringInterner.kt:56)
    at jetbrains.exodus.util.StringHashMap.put(StringHashMap.java:34)
    at jetbrains.exodus.util.StringHashMap.put(StringHashMap.java:20)
    at jetbrains.exodus.AbstractConfig.setSetting(AbstractConfig.java:97)
    at jetbrains.exodus.env.EnvironmentConfig.setSetting(EnvironmentConfig.java:669)
    at jetbrains.exodus.env.EnvironmentConfig$1.setSetting(EnvironmentConfig.java:64)
    at jetbrains.exodus.AbstractConfig.<init>(AbstractConfig.java:75)
    at jetbrains.exodus.env.EnvironmentConfig.<init>(EnvironmentConfig.java:602)
    at jetbrains.exodus.env.EnvironmentConfig$1.<init>(EnvironmentConfig.java:64)
    at jetbrains.exodus.env.EnvironmentConfig.<clinit>(EnvironmentConfig.java:64)
    at jetbrains.exodus.env.Environments.newInstance(Environments.java:55)
    at meghanada.store.ProjectDatabase.open(ProjectDatabase.java:352)
    at meghanada.store.ProjectDatabase.<init>(ProjectDatabase.java:77)
    at meghanada.store.ProjectDatabase.getInstance(ProjectDatabase.java:99)
    at meghanada.store.ProjectDatabaseHelper.saveClassIndexes(ProjectDatabaseHelper.java:46)
    at meghanada.reflect.asm.CachedASMReflector.updateClassIndexes(CachedASMReflector.java:218)
    at meghanada.reflect.asm.CachedASMReflector.updateClassIndexFromDirectory(CachedASMReflector.java:273)
    at meghanada.reflect.asm.CachedASMReflector.createClassIndexes(CachedASMReflector.java:188)
    at meghanada.junit.TestRunner.<init>(TestRunner.java:47)
    at meghanada.junit.TestRunner.main(TestRunner.java:54)

I suspect it may be some issue with a classpath when it's being run. The tests are fine from eclipse or running mvn test -Dtest=... directly.