有时运行一些测试时,我遇到了错误java.lang.NoClassDefFoundError
。
这是环境设置:
测试用Scala编写,服务用Scala和Java编写。同时使用ant和ivy。
Order.scala大致如下:
object Order extends JdbcEnabled {
val orderServiceClientIpAddress = Network.localIpAddress
val PersonalOffersSaleId = "123"
lazy val checkoutClient = new CheckoutClientImpl(YamlConfigFactory.loadConfig(
this.getClass.getClassLoader.getResourceAsStream("core_config.yaml")
).getRequiredSubConfig("core").getRequiredSubConfig(Environment.HostEnv))
val storeList = new JLinkedList[Store]()
storeList.add(OrderHelper.getSelectedStore)
var skuList = OrderHelper.getAvailableSkus
val skusForInternationalOrders = skuList
def createOrder(){...}}
有许多使用TestNG运行的测试。有时候所有测试都能够通过而没有任何问题,但有时候会出现以下异常导致测试失败。
以下是一个测试在调用订单API时失败的代码片段。
val orderNumber = Order.createOrder()
当测试失败时,这是完整的堆栈跟踪:
java.lang.NoClassDefFoundError: Could not initialize class com.api.Order$
at com.CreateOrder.setUpOnce(CreateOrder.scala:35)
在那个类中第35行,CreateOrder.scala 是:
val orderNumber = Order.createOrder()