gpt4 book ai didi

java - 使用嵌入式 Cassandra 进行突变测试时出现 NoSuchMethodError

转载 作者:行者123 更新时间:2023-12-01 19:16:20 24 4
gpt4 key购买 nike

最近,在将一些新的单元测试合并到我的工作分支中时,我开始看到此错误:

Exception (java.lang.NoSuchMethodError) encountered during startup: com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService()Lcom/google/common/util/concurrent/ListeningExecutorService;
java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService()Lcom/google/common/util/concurrent/ListeningExecutorService;
at org.apache.cassandra.index.SecondaryIndexManager.<clinit>(SecondaryIndexManager.java:125)
at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:405)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:623)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:597)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:588)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:417)
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:324)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:129)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:106)
at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:935)
at org.apache.cassandra.service.StartupChecks$10.execute(StartupChecks.java:422)
at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:125)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:200)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:602)
at org.cassandraunit.utils.EmbeddedCassandraServerHelper.lambda$startEmbeddedCassandra$1(EmbeddedCassandraServerHelper.java:150)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

这是有问题的测试类:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = { MyApplication.class })
@TestExecutionListeners(listeners = { CassandraUnitDependencyInjectionTestExecutionListener.class, DependencyInjectionTestExecutionListener.class })
@EmbeddedCassandra(timeout = 100000)
@CassandraDataSet("indexer.cql")
@ActiveProfiles("test")
public class MyDaoTest {

@Autowired
MyDao myDao;


@Test ...
}

我能够通过运行 mvn test -DskipMutation 来验证单元测试是否通过,因此在将嵌入式 Cassandra 与突变测试结合使用时这似乎是一个问题,但我对这两种技术都不是很熟悉。

以前有人遇到过这个问题吗?您能否提供一些解决此问题的建议(而不是简单地禁用突变测试)?

最佳答案

导致此错误的最可能原因是您的 Guava 版本低于 18.0,其中 MoreExecutors.newDirectExecutor method已添加 - Cassandra 需要它。在您的项目上运行 mvn dependency:tree 并检查项目中的 Guava 版本。如果任何依赖项依赖于旧版本的 Guava,请尝试从该依赖项中排除 Guava(尽管这可能会破坏您的代码 - 在这种情况下,尝试查找不使用旧版本 Guava 的依赖项)。

关于java - 使用嵌入式 Cassandra 进行突变测试时出现 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59413267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com