作为JUnit运行-ClassNotFoundException-BuildCommand Fix导致类解析问题

时间:2018-07-12 20:37:01

标签: java eclipse junit

这是我的设置:

Eclipse氧气

使用Maven 3.3进行构建和部署,其中包括单元测试的以下特定依赖项:

  • JUnit 4.4
  • Mockito 1.9.5

我已经创建了一个JUnit测试类,并将其添加到($ project / src / test / java)中。
我将此文件夹添加为源文件夹,然后执行了Run As JUnit。

我收到以下错误:

Class not found 
java.lang.ClassNotFoundException: 
    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 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:770)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:499)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:522)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

我可以通过将以下内容添加到.project文件Build Spec中来解决此问题:

   <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>

不幸的是,这似乎导致在Java Server Faces等的标记下显示多个错误。

这真的是我的解决方法,还是我可能会缺少其他东西?在进行此更改以解决“ Junit”问题之前,如果您有一个干净的工作区,这特别令人沮丧。

1 个答案:

答案 0 :(得分:0)

这些额外的依赖项需要添加到pom.xml

<!-- JSF(MyFaces & Tomahawk) Dependencies -->
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>1.1.5</version>
            <exclusions>
                <exclusion>
                    <artifactId>javax.servlet</artifactId>
                    <groupId>jstl</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-impl</artifactId>
            <version>1.1.5</version>
            <exclusions>
                <exclusion>
                    <artifactId>javax.servlet</artifactId>
                    <groupId>jstl</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.tomahawk</groupId>
            <artifactId>tomahawk</artifactId>
            <version>1.1.6</version>
            <exclusions>
                <exclusion>
                    <artifactId>javax.servlet</artifactId>
                    <groupId>jstl</groupId>
                </exclusion>
            </exclusions>
        </dependency> 

实际的jar文件也可以添加为外部库,但是每次创建项目时都需要这样做。