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

Joda Time - Cannot run JUnit tests in Eclipse or IntelliJ

我在本地克隆了 joda-time GitHub 存储库,将其作为 Maven 项目导入到 Eclipse 和 IntelliJ Idea 中,并且在两个 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)

任何有关如何解决此问题的提示都将不胜感激。

我是 Maven 的新手,事实证明问题出在我尝试 运行 测试的方式上。

正如 roby 所说,我应该使用 IntelliJ 中的 maven 栏 运行 正确的 maven 目标(同样,我应该使用 运行 As.. 和正确的 maven 目标Eclipse),而我只是试图通过使用 IDE 来 运行 测试,即右键单击项目和 'Run All Tests',这可以理解地不起作用,因为它没有使用正确的配置.