scalatest - 异常或错误导致运行中止:无法启动 EmbeddedCassandra[name='cassandra-2', version='3.11.6']
问题描述
我embedded-cassandra
在我的单元测试(Scalatest)中使用。当我尝试批量运行所有测试用例时,出现错误
An exception or error caused a run to abort: Unable to start EmbeddedCassandra[name='cassandra-2', version='3.11.6']
...
Caused by: java.io.IOException: 'WindowsCassandraNode[pid='-1', exitValue='0']' is not alive. Please see logs for more details
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file C:\Users\manuc\AppData\Local\Temp\apache-cassandra-3.11.6-5333812070060739596/logs/gc.log due to No such file or directory
...
ava.net.BindException: Address already in use: JVM_Bind
java.net.BindException: Address already in use: JVM_Bind
ERROR [main] 2020-09-17 06:27:11,872 CassandraDaemon.java:774 - Port already in use: 7199; nested exception is:
我可能做错了什么?正如跟踪所说cassandra-2
,似乎另一个 Cassandra 实例已经在运行?会不会是测试同时运行?串行运行测试的方法是什么Intellij/Scalatest
?
这个答案提到 Scalatest 会并行运行西装,这可能会导致端口冲突问题。有没有办法避免端口冲突embedded-cassandra
或串行运行套件?-如何在ScalaTest 中按顺序运行类中的测试?
解决方案
You can try to use random ports to solve your issue:
EmbeddedCassandraFactory cassandraFactory = new EmbeddedCassandraFactory();
cassandraFactory.setPort(0);
cassandraFactory.setSslPort(0); // if SSL client options enabled
cassandraFactory.setRpcPort(0);
cassandraFactory.setJmxLocalPort(0);
cassandraFactory.setStoragePort(0);
cassandraFactory.setSslStoragePort(0); // // if SSL server options enabled
推荐阅读
- java - 如何从 Java 消费者的主题中的消息中从模式注册表中检索 AVRO 模式
- python - 如何从 django 中的另一个模型更新模型的字段?
- html - 在我的导航栏上添加一个 PNG 标志,它从顶部和底部流动
- batch-file - 将文件中的组数据替换为另一个文件的内容
- ios - 在 applicationWillTerminate 中调用 removeAllPendingNotificationRequests() 在 iPad 上不起作用
- lua - Lua:我可以使用 for 循环来处理数组中的所有“有时为零”值吗?
- java - 无论使用 GSON 的类型是什么,动态地从 JsonArray 获取项目
- r - ggplot中直方图上的箱之间的垂直线
- python - 使用 TextInput 在 Bokeh 中创建交互式小部件以更改图形
- java - JAVA:为什么我的代码中出现“解析时到达文件末尾”错误?