#scala #unit-testing #intellij-idea #sbt #embedded-cassandra
#scala #модульное тестирование #intellij-идея #sbt #встроенный-кассандра
Вопрос:
У меня есть модульные тесты, для которых нужна встроенная кассандра. Поэтому я использую «cassandra-unit» , проблема в том, что я мог бы успешно выполнить все свои тесты из intellij, но когда я запускаю его через
sbt test
Встроенная кассандра не смогла перезапустить dui из — за этой ошибки:
java.lang.NoSuchMethodError: 'java.nio.file.FileStore org.apache.cassandra.io.util.FileUtils.getFileStore(java.nio.file.Path)' [error] at org.apache.cassandra.config.DatabaseDescriptor.guessFileStore(DatabaseDescriptor.java:1029) [error] at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:470) [error] at org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:316) [error] at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:148) [error] at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:132) [error] at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:145) [error] at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:110) [error] at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:90)
поскольку мне нужно запускать тесты с помощью теста sbt, потому что я хочу интегрировать его с Дженкинсом, так как я сталкиваюсь с той же проблемой.
вот мои зависимости от scala :2.12 :
"com.datastax.spark" %% "spark-cassandra-connector-assembly" % "3.0.1" , "spark.jobserver" %% "job-server-api" % "0.11.1" , "org.apache.spark" %% "spark-core" % "3.0.2" , "org.apache.spark" %% "spark-sql" % "3.0.2", "org.scalatest" %% "scalatest" % "3.1.1" % "test" excludeAll(excludeJpountz), "org.apache.cassandra" % "cassandra-clientutil" % "3.9" % "test" excludeAll(excludeJpountz), "org.cassandraunit" % "cassandra-unit" % "3.11.2.0" % "test" excludeAll(excludeJpountz)
у моей кассандры.ямл есть такие :
commitlog_directory: target/embeddedCassandra/commitlog cdc_raw_directory: target/embeddedCassandra/cdc saved_caches_directory: target/embeddedCassandra/saved_caches
Я проверил свой java-дом (сборка 1.8.0_271-b09), который совпадает с тем, что я использую в intellij target 1.8,
и я попытался удалить цель из этих путей в cassandra.yaml, так как я читал, что при выполнении sbt целевая папка не будет существовать, но это дает мне ту же ошибку. есть ли какой-либо другой способ отредактировать эти пути или кто-нибудь может объяснить, в чем могут быть различия между запуском из intellij и запуском sbt ?