Joda Time - 无法在Eclipse或IntelliJ中运行JUnit测试

时间:2017-06-19 16:27:46

标签: eclipse intellij-idea junit jodatime

我在本地克隆了joda-time GitHub存储库,在Eclipse和IntelliJ Idea中将其作为Maven项目导入,并且它在两个IDE中都构建得非常好。但是当试图运行JUnit测试时,它在两个IDE中都无法工作,我无法看到问题所在。

我知道我需要创建一个额外的文件夹

src\tz-data\org\joda\time\tz\data

并在那里放置两个文件

CET
ZoneInfoMap

我完成了所有这些。

JUnit测试仍然没有运行,有趣的是我在Eclipse下得到了完全不同的错误:

java.lang.ExceptionInInitializerError
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTest(JUnit3TestLoader.java:100)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests(JUnit3TestLoader.java:51)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalArgumentException: The datetime zone id 'Europe/Paris' is not recognised
    at org.joda.time.DateTimeZone.forID(DateTimeZone.java:234)
    at org.joda.time.TestLocalDate_Basics.<clinit>(TestLocalDate_Basics.java:50)
    ... 10 more

并在IntelliJ Idea下:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.joda.time.TestAbstractPartial
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at junit.framework.TestSuite.createTest(TestSuite.java:58)
    at junit.framework.TestSuite.addTestMethod(TestSuite.java:280)
    at junit.framework.TestSuite.<init>(TestSuite.java:140)
    at com.intellij.junit3.TestRunnerUtil.createClassOrMethodSuite(TestRunnerUtil.java:147)
    at com.intellij.junit3.TestAllInPackage2.<init>(TestAllInPackage2.java:32)
    at com.intellij.junit3.TestRunnerUtil.getTestSuite(TestRunnerUtil.java:78)
    at com.intellij.junit3.JUnit3IdeaTestRunner.startRunnerWithArgs(JUnit3IdeaTestRunner.java:43)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

如何解决这个问题的任何提示都会非常感激。

1 个答案:

答案 0 :(得分:0)

我是maven的新手,事实证明问题在于我试图运行测试的方式。

正如roby所说,我应该使用IntelliJ中的maven栏来运行正确的maven目标(同样地,我应该使用Run As ..以及Eclipse中正确的maven目标),而我只是想尝试运行使用IDE进行测试,即右键单击项目和“运行所有测试”,这可以理解为无法使用,因为它没有使用正确的配置。