scala使用FunSpec进行单元测试报错
2024-09-29 22:34:35
遇到比较奇怪的问题,mvn项目中的main函数可以正常运行,但是test阶段出错,报错信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$(Unknown Source)
at java.net.URLClassLoader$.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at learning_scala.java.Main.main(Main.java:)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
at java.net.URLClassLoader$.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
test代码如下:
class Sampling$Test extends FunSpec{
describe("Sampling Test"){
val spark = SparkSession
.builder()
.master("local")
.getOrCreate()
println("......")
it("should run without exeption."){
val array: Array[String] = Array("down", "xxx", "xxx", "xxx", "xxx")
Sampling.main(array)
}
}
}
解决方法:
将 scala-library.jar 的路径加入到 CLASSPATH 中(参考:https://stackoverflow.com/questions/7781547/noclassdeffounderror-scala-scalaobject-in-mixed-scala-java-project),但是又报了如下错误:
Error:scalac: error while loading Suite, Scala signature Suite has wrong version
expected: 5.0
found: 4.1 in Suite.class
是scala和单元测试包不匹配造成的,将org.specs包更新到最新,问题解决:
<dependency>
<groupId>org.specs</groupId>
<artifactId>specs</artifactId>
<version>1.4.</version>
<scope>test</scope>
</dependency>
最新文章
- Spark 运行架构核心总结
- 1.3 基础知识——GP2.1 方针(Policy)
- 青瓷引擎使用心得——修改引擎的loading界面
- uva 1584.Circular Sequence
- Web前端之html_day1
- oracle数据库中varchar2陷阱
- 如何做好IT运营.
- Oracle表空间管理
- android 项目学习随笔三(Fragment )
- smartgit document merge
- c#实现word,winWordControl 文档不允许复制、粘贴、隐藏工具栏、快捷保存
- SCJP_104——题目分析(4)
- 如何实现android蓝牙开发 自动配对连接,并不弹出提示框
- 基于Linux根据僵尸网络病毒平台《比尔盖茨》
- sql server 2012提示评估期已过的解决办法 附序列号
- zf-关于荆州首页鼠标移动到导航栏上去触发的js 显示 问题解决办法
- vuejs单一事件管理组件间的通信
- windows NLB实现MSSQL读写分离--从数据库集群读负载均衡
- convert sorted list to binary search tree(将有序链表转成平衡二叉搜索树)
- https 对 json空对象解析的影响